GNU/Linux >> Belajar Linux >  >> Linux

Mainkan game matematika yang menyenangkan dengan perintah Linux

Seperti banyak orang, saya telah menjelajahi banyak acara TV baru selama pandemi. Saya baru-baru ini menemukan acara permainan Inggris yang disebut Countdown , di mana kontestan memainkan dua jenis permainan:a kata-kata permainan, di mana mereka mencoba membuat kata terpanjang dari campuran huruf, dan angka permainan, di mana mereka menghitung nomor target dari pilihan nomor acak. Karena saya menikmati matematika, saya menemukan diri saya tertarik pada permainan angka.

Permainan angka bisa menjadi tambahan yang menyenangkan untuk malam permainan keluarga Anda berikutnya, jadi saya ingin membagikan variasi saya sendiri. Anda mulai dengan kumpulan angka acak, dibagi menjadi angka "kecil" dari 1 hingga 10 dan angka "besar" yaitu 15, 20, 25, dan seterusnya hingga 100. Anda memilih kombinasi enam angka dari besar dan kecil angka.

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Selanjutnya, Anda membuat angka "target" acak antara 200 dan 999. Kemudian gunakan operasi aritmatika sederhana dengan enam angka Anda untuk mencoba menghitung angka target menggunakan setiap angka "kecil" dan "besar" tidak lebih dari satu kali. Anda mendapatkan jumlah poin tertinggi jika Anda menghitung jumlah target dengan tepat dan poin lebih sedikit jika Anda bisa mendapatkan dalam 10 dari jumlah target.

Misalnya, jika nomor acak Anda adalah 75, 100, 2, 3, 4, dan 1, dan nomor target Anda adalah 505, Anda dapat mengatakan 2+3=5 , 5×100=500 , 4+1=5 , dan 5+500=505 . Atau lebih langsung:(2 +3100 + 4 + 1 =505 .

Acak daftar pada baris perintah

Saya telah menemukan cara terbaik untuk memainkan game ini di rumah adalah dengan menarik empat angka "kecil" dari kumpulan 1 hingga 10 dan dua angka "besar" dari kelipatan lima dari 15 hingga 100. Anda dapat menggunakan baris perintah Linux untuk membuat nomor acak ini untuk Anda.

Mari kita mulai dengan angka "kecil". Saya ingin ini berada dalam kisaran 1 hingga 10. Anda dapat membuat urutan angka menggunakan seq Linux memerintah. Anda dapat menjalankan seq beberapa cara berbeda, tetapi bentuk paling sederhana adalah memberikan angka awal dan akhir untuk urutan. Untuk membuat daftar dari 1 hingga 10, Anda dapat menjalankan perintah ini:

$ seq 1 10
1
2
3
4
5
6
7
8
9
10

Untuk mengacak daftar ini, Anda dapat menggunakan Linux shuf ("mengacak") perintah. shuf akan mengacak urutan apa pun yang Anda berikan, biasanya file. Misalnya, jika Anda mengirim output dari seq perintah ke shuf perintah, Anda akan menerima daftar angka acak antara 1 dan 10:

$ urutan 1 10 | shuf
3
6
8
10
7
4
5
2
1
9

Untuk memilih hanya empat angka acak dari daftar 1 hingga 10, Anda dapat mengirim output ke head perintah, yang mencetak beberapa baris pertama dari inputnya. Gunakan -4 opsi untuk menentukan head harus mencetak hanya empat baris pertama:

$ urutan 1 10 | shuf | kepala -4
6
1
8
4

Perhatikan bahwa daftar ini berbeda dari contoh sebelumnya karena shuf akan menghasilkan pesanan acak setiap saat.

Sekarang Anda dapat mengambil langkah berikutnya untuk menghasilkan daftar acak angka "besar". Langkah pertama adalah membuat daftar kemungkinan angka mulai dari 15, bertambah lima, hingga Anda mencapai 100. Anda dapat membuat daftar ini dengan seq Linux memerintah. Untuk menambah setiap angka sebanyak lima, masukkan opsi lain untuk seq perintah untuk menunjukkan langkah :

$ seq 15 5 100
15
20
25
30
35
40
45
50
55
60
65
70
75
80
85
90
95
100

Dan seperti sebelumnya, Anda dapat mengacak daftar ini dan memilih dua dari nomor "besar":

$ urutan 15 5 100 | shuf | kepala -2
75
40

Buat angka acak dengan Bash

Saya kira Anda bisa menggunakan metode serupa untuk memilih nomor target permainan dari kisaran 200 hingga 999. Tetapi solusi paling sederhana untuk menghasilkan nilai acak tunggal adalah dengan menggunakan RANDOM variabel langsung di Bash. Saat Anda mereferensikan variabel bawaan ini, Bash menghasilkan angka acak yang besar. Untuk menempatkan ini dalam kisaran 200 hingga 999, Anda harus memasukkan angka acak ke dalam kisaran 0 hingga 799 terlebih dahulu, lalu tambahkan 200.

Untuk memasukkan angka acak ke dalam rentang tertentu mulai dari 0, Anda dapat menggunakan modulo operasi aritmatika. Modulo menghitung sisa setelah membagi dua bilangan. Jika saya mulai dengan 801 dan dibagi 800, hasilnya adalah 1 dengan sisa 1 (modulonya adalah 1). Membagi 800 dengan 800 menghasilkan 1 dengan sisa 0 (modulonya adalah 0). Dan membagi 799 dengan 800 menghasilkan 0 dengan sisa 799 (modulonya adalah 799).

Bash mendukung ekspansi aritmatika dengan $(( )) membangun. Di antara tanda kurung ganda, Bash akan melakukan operasi aritmatika pada nilai yang Anda berikan. Untuk menghitung modulo 801 dibagi 800, lalu dijumlahkan 200, ketikkan:

$ echo $(( 801 % 800 + 200 ))
201

Dengan operasi itu, Anda dapat menghitung angka target acak antara 200 dan 999:

$ echo $(( RANDOM % 800 + 200 ))
673

Anda mungkin bertanya-tanya mengapa saya menggunakan RANDOM bukannya $RANDOM dalam pernyataan Bash saya. Dalam ekspansi aritmatika, Bash akan secara otomatis memperluas variabel apa pun dalam tanda kurung ganda. Anda tidak memerlukan $ pada $RANDOM variabel untuk mereferensikan nilai variabel karena Bash akan melakukannya untuk Anda.

Memainkan permainan angka

Mari kita kumpulkan semua itu untuk memainkan permainan angka. Hasilkan dua angka "besar" acak, empat nilai "kecil" acak, dan nilai target:

$ urutan 15 5 100 | shuf | head -2
75
100
$ seq 1 10 | shuf | head -4
4
3
10
2
$ echo $(( RANDOM % 800 + 200 ))
868

Nomor saya 75 , 100 , 4 , 3 , 10 , dan 2 , dan nomor target saya adalah 868 .

Saya dapat mendekati angka target jika saya melakukan operasi aritmatika ini menggunakan masing-masing angka "kecil" dan "besar" tidak lebih dari satu kali:

10×75 =750
750+100 =850

dan:

4×3 =12
850+12 =862
862+2 =864

Itu hanya empat jauhnya—tidak buruk! Tapi saya menemukan cara ini untuk menghitung angka pasti menggunakan setiap angka acak tidak lebih dari sekali:

4×2 =8
8×100 =800

dan:

75-10+3 =68
800+68 =868

Atau saya bisa melakukan ini perhitungan untuk mendapatkan jumlah target yang tepat. Ini hanya menggunakan lima dari enam angka acak:

4×3 =12
75+12 =87

dan:

87×10 =870
870-2 =868

Berikan Hitung Mundur coba permainan angka, dan beri tahu kami seberapa baik Anda melakukannya di komentar.


Linux
  1. Lakukan matematika di shell Linux dengan GNU bc

  2. Mainkan Game Viral Wordle di Linux

  3. Beberapa Perintah Linux One-liner Acak [Bagian 1]

  1. Matematika menyenangkan dengan kalkulator grafik Linux ini

  2. 10+ perintah Linux VI dengan contoh

  3. Perintah Linux:menjelajahi memori virtual dengan vmstat

  1. Mainkan orkestra digital dengan Linux Sampler

  2. Mainkan drum di Linux dengan Hidrogen

  3. 7 perintah Linux untuk digunakan hanya untuk bersenang-senang