GNU/Linux >> Znalost Linux >  >> Linux

Zahrajte si zábavnou matematickou hru s příkazy Linuxu

Jako mnoho lidí jsem během pandemie prozkoumal spoustu nových televizních pořadů. Nedávno jsem objevil britskou herní show s názvem Countdown , kde soutěžící hrají dva typy her:a slova hra, kde se snaží vytvořit nejdelší slovo ze změti písmen a číslic hra, kde z náhodného výběru čísel vypočítají cílové číslo. Protože mě baví matematika, přistihla mě hra s čísly.

Hra s čísly může být zábavným doplňkem vaší příští rodinné herní noci, proto jsem se chtěl podělit o svou vlastní variaci. Začnete sbírkou náhodných čísel, rozdělených na „malá“ čísla od 1 do 10 a „velká“ čísla, která jsou 15, 20, 25 atd., až do 100. Vyberete libovolnou kombinaci šesti čísel z velkých i malých čísla.

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Dále vygenerujete náhodné „cílové“ číslo mezi 200 a 999. Poté pomocí jednoduchých aritmetických operací s vašimi šesti čísly zkuste vypočítat cílové číslo pomocí každého „malého“ a „velkého“ čísla ne více než jednou. Nejvyšší počet bodů získáte, pokud přesně vypočítáte cílové číslo, a méně bodů, pokud se dostanete do 10 od cílového počtu.

Pokud byla například vaše náhodná čísla 75, 100, 2, 3, 4 a 1 a vaše cílové číslo bylo 505, můžete říci 2+3=5 , 5×100=500 , 4+1=5 a 5+500=505 . Nebo přímo:(2 +3100 + 4 + 1 =505 .

Náhodné uspořádání seznamů na příkazovém řádku

Zjistil jsem, že nejlepší způsob, jak hrát tuto hru doma, je vytáhnout čtyři „malá“ čísla ze skupiny 1 až 10 a dvě „velká“ čísla z násobků pěti od 15 do 100. Můžete použít příkazový řádek Linuxu vytvořit tato náhodná čísla.

Začněme „malými“ čísly. Chci, aby byly v rozsahu 1 až 10. Posloupnost čísel můžete vygenerovat pomocí Linux seq příkaz. Můžete spustit seq několik různých způsobů, ale nejjednodušší formou je poskytnout počáteční a koncová čísla sekvence. Chcete-li vygenerovat seznam od 1 do 10, můžete spustit tento příkaz:

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

K náhodnému uspořádání tohoto seznamu můžete použít Linux shuf příkaz ("zamíchat"). shuf náhodně upraví pořadí čehokoli, co mu dáte, obvykle souboru. Pokud například odešlete výstup seq příkaz shuf obdržíte náhodný seznam čísel mezi 1 a 10:

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

Chcete-li vybrat pouze čtyři náhodná čísla ze seznamu od 1 do 10, můžete odeslat výstup do head příkaz, který vypíše prvních několik řádků svého vstupu. Použijte -4 možnost specifikovat tuto head by měl vytisknout pouze první čtyři řádky:

$ seq 1 10 | šuf | hlava -4
6
1
8
4

Všimněte si, že tento seznam se liší od předchozího příkladu, protože shuf pokaždé vygeneruje náhodné pořadí.

Nyní můžete udělat další krok a vygenerovat náhodný seznam "velkých" čísel. Prvním krokem je vygenerování seznamu možných čísel začínajících na 15, postupně se zvyšujících o pět, dokud nedosáhnete 100. Tento seznam můžete vygenerovat pomocí Linux seq příkaz. Chcete-li každé číslo zvýšit o pět, vložte další možnost pro seq příkaz k označení kroku :

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

A stejně jako dříve můžete tento seznam náhodně uspořádat a vybrat dvě z „velkých“ čísel:

$ seq 15 5 100 | šuf | hlava -2
75
40

Vygenerování náhodného čísla pomocí Bash

Předpokládám, že byste mohli použít podobnou metodu k výběru cílového čísla hry z rozsahu 200 až 999. Nejjednodušším řešením pro vygenerování jedné náhodné hodnoty je však použít RANDOM proměnná přímo v Bash. Když odkazujete na tuto vestavěnou proměnnou, Bash generuje velké náhodné číslo. Chcete-li to zadat v rozsahu 200 až 999, musíte nejprve zadat náhodné číslo do rozsahu 0 až 799 a poté přidat 200.

Chcete-li vložit náhodné číslo do určitého rozsahu začínajícího na 0, můžete použít modulo aritmetická operace. Modulo vypočítá zbytek po dělení dvou čísel. Pokud jsem začal s 801 a vydělil 800, výsledek je 1 se zbytkem 1 (modul je 1). Vydělením 800 800 získáme 1 se zbytkem 0 (modul je 0). A vydělením 799 800 dostaneme 0 se zbytkem 799 (modulo je 799).

Bash podporuje aritmetické rozšíření pomocí $(( )) postavit. Mezi dvojitými závorkami bude Bash provádět aritmetické operace s hodnotami, které zadáte. Chcete-li vypočítat modulo 801 děleno 800 a poté přidat 200, zadejte:

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

Pomocí této operace můžete vypočítat náhodné cílové číslo mezi 200 a 999:

$ echo $(( NÁHODNĚ % 800 + 200 ))
673

Možná se divíte, proč jsem použil RANDOM místo $RANDOM v mém prohlášení Bash. Při aritmetickém rozšíření Bash automaticky rozšíří všechny proměnné v dvojitých závorkách. Nepotřebujete $ na $RANDOM proměnnou odkazovat na hodnotu proměnné, protože Bash to udělá za vás.

Hraní hry s čísly

Pojďme to všechno dát dohromady a zahrát si hru s čísly. Vygenerujte dvě náhodná „velká“ čísla, čtyři náhodné „malé“ hodnoty a cílovou hodnotu:

$ seq 15 5 100 | šuf | hlava -2
75
100
$ následující 1 10 | šuf | hlava -4
4
3
10
2
$ echo $(( NÁHODNÉ % 800 + 200 ))
868

Moje čísla jsou 75 , 100 , 4 , 3 , 10 a 2 a mé cílové číslo je 868 .

Mohu se přiblížit cílovému číslu, pokud tyto aritmetické operace s každým z „malých“ a „velkých“ čísel neprovedu více než jednou:

10×75 =750
750+100 =850

a:

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

To jsou jen čtyři pryč – to není špatné! Ale našel jsem tento způsob, jak vypočítat přesné číslo pomocí každého náhodného čísla ne více než jednou:

4×2 =8
8×100 =800

a:

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

Nebo bych mohl provést tyto výpočty, abyste přesně získali cílové číslo. To používá pouze pět ze šesti náhodných čísel:

4×3 =12
75+12 =87

a:

87×10 =870
870-2 =868

Zadejte Odpočítávání zkuste hru s čísly a dejte nám vědět, jak se vám dařilo, v komentářích.


Linux
  1. Počítejte v linuxovém shellu s GNU bc

  2. 10+ Linux VI příkazy s příklady

  3. Linuxové příkazy:prozkoumávání virtuální paměti pomocí vmstat

  1. S touto grafickou kalkulačkou pro Linux je matematika zábavná

  2. Zahrajte si hru Viral Wordle v Linuxu

  3. Některé náhodné jednořádkové příkazy Linuxu [část 1]

  1. Hrajte s digitálním orchestrem pomocí Linux Sampler

  2. Hrajte na bicí na Linuxu s Hydrogen

  3. 7 Linuxových příkazů, které lze použít jen pro zábavu