GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Spielen Sie ein lustiges Mathe-Spiel mit Linux-Befehlen

Wie viele Menschen habe ich während der Pandemie viele neue Fernsehsendungen erkundet. Ich habe kürzlich eine britische Spielshow namens Countdown entdeckt , wo die Teilnehmer zwei Arten von Spielen spielen:ein Wörter Spiel, bei dem sie versuchen, aus einem Durcheinander von Buchstaben und Zahlen das längste Wort zu machen Spiel, bei dem sie aus einer zufälligen Auswahl von Zahlen eine Zielzahl berechnen. Weil ich Mathematik mag, habe ich mich zum Zahlenspiel hingezogen gefühlt.

Das Zahlenspiel kann eine lustige Ergänzung für Ihren nächsten Spieleabend mit der Familie sein, deshalb wollte ich meine eigene Variante davon teilen. Sie beginnen mit einer Sammlung von Zufallszahlen, die in "kleine" Zahlen von 1 bis 10 und "große" Zahlen von 15, 20, 25 usw. bis 100 unterteilt sind. Sie wählen eine beliebige Kombination aus sechs Zahlen aus großen und kleinen Zahlen Nummern.

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Als nächstes generierst du eine zufällige „Zielzahl“ zwischen 200 und 999. Versuche dann mit einfachen Rechenoperationen mit deinen sechs Zahlen, die Zielzahl zu berechnen, indem du jede „kleine“ und „große“ Zahl nicht mehr als einmal verwendest. Sie erhalten die höchste Punktzahl, wenn Sie die Zielzahl genau berechnen, und weniger Punkte, wenn Sie innerhalb von 10 der Zielzahl kommen.

Wenn Ihre Zufallszahlen beispielsweise 75, 100, 2, 3, 4 und 1 waren und Ihre Zielzahl 505 war, könnten Sie sagen:2+3=5 , 5×100=500 , 4+1=5 und 5+500=505 . Oder direkter:(2 +3 ) × 100 + 4 + 1 =505 .

Randomisieren Sie Listen auf der Befehlszeile

Ich habe festgestellt, dass der beste Weg, dieses Spiel zu Hause zu spielen, darin besteht, vier "kleine" Zahlen aus einem Pool von 1 bis 10 und zwei "große" Zahlen aus einem Vielfachen von fünf von 15 bis 100 zu ziehen. Sie können die Linux-Befehlszeile verwenden um diese Zufallszahlen für Sie zu erstellen.

Beginnen wir mit den "kleinen" Zahlen. Ich möchte, dass diese im Bereich von 1 bis 10 liegen. Sie können eine Zahlenfolge mit dem Linux seq generieren Befehl. Sie können seq ausführen ein paar verschiedene Möglichkeiten, aber die einfachste Form besteht darin, die Anfangs- und Endnummer für die Sequenz anzugeben. Um eine Liste von 1 bis 10 zu generieren, können Sie diesen Befehl ausführen:

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

Um diese Liste zu randomisieren, können Sie den Linux-Befehl shuf ("shuffle")-Befehl. shuf wird die Reihenfolge dessen, was Sie ihm geben, zufällig anordnen, normalerweise eine Datei. Wenn Sie beispielsweise die Ausgabe von seq Befehl zum shuf Befehl erhalten Sie eine randomisierte Liste von Zahlen zwischen 1 und 10:

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

Um nur vier Zufallszahlen aus einer Liste von 1 bis 10 auszuwählen, können Sie die Ausgabe an head senden Befehl, der die ersten paar Zeilen seiner Eingabe ausgibt. Verwenden Sie die -4 Option, um diesen head anzugeben sollte nur die ersten vier Zeilen drucken:

$ seq 1 10 | schuf | Kopf -4
6
1
8
4

Beachten Sie, dass sich diese Liste vom vorherigen Beispiel unterscheidet, weil shuf generiert jedes Mal eine zufällige Reihenfolge.

Jetzt können Sie den nächsten Schritt machen, um die Zufallsliste der "großen" Zahlen zu generieren. Der erste Schritt besteht darin, eine Liste möglicher Zahlen zu erstellen, die bei 15 beginnen und um fünf erhöht werden, bis Sie 100 erreichen. Sie können diese Liste mit dem Linux seq erstellen Befehl. Um jede Zahl um fünf zu erhöhen, fügen Sie eine weitere Option für seq ein Befehl, um den Schritt anzugeben :

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

Und genau wie zuvor können Sie diese Liste randomisieren und zwei der "großen" Zahlen auswählen:

$ seq 15 5 100 | schuf | Kopf -2
75
40

Erzeuge eine Zufallszahl mit Bash

Ich nehme an, Sie könnten eine ähnliche Methode verwenden, um die Zielzahl des Spiels aus dem Bereich von 200 bis 999 auszuwählen. Aber die einfachste Lösung, um einen einzelnen Zufallswert zu generieren, ist die Verwendung des RANDOM Variable direkt in Bash. Wenn Sie auf diese integrierte Variable verweisen, generiert Bash eine große Zufallszahl. Um dies in den Bereich von 200 bis 999 zu bringen, müssen Sie die Zufallszahl zuerst in den Bereich von 0 bis 799 setzen und dann 200 hinzufügen.

Um eine Zufallszahl in einen bestimmten Bereich beginnend bei 0 einzufügen, können Sie das Modulo verwenden Arithmetische Operation. Modulo berechnet den Rest nach der Division zweier Zahlen. Wenn ich mit 801 angefangen und durch 800 geteilt habe, ist das Ergebnis 1 mit einem Rest von 1 (das Modulo ist 1). Das Teilen von 800 durch 800 ergibt 1 mit einem Rest von 0 (das Modulo ist 0). Und die Division von 799 durch 800 ergibt 0 mit einem Rest von 799 (das Modulo ist 799).

Bash unterstützt die arithmetische Erweiterung mit $(( )) bauen. Zwischen den doppelten Klammern führt Bash arithmetische Operationen mit den von Ihnen angegebenen Werten durch. Um das Modulo von 801 dividiert durch 800 zu berechnen und dann 200 zu addieren, würden Sie Folgendes eingeben:

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

Mit dieser Operation können Sie eine zufällige Zielzahl zwischen 200 und 999 berechnen:

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

Sie fragen sich vielleicht, warum ich RANDOM verwendet habe statt $RANDOM in meiner Bash-Anweisung. Bei der arithmetischen Erweiterung erweitert Bash automatisch alle Variablen innerhalb der doppelten Klammern. Sie brauchen das $ nicht auf $RANDOM Variable, um auf den Wert der Variablen zu verweisen, da Bash dies für Sie erledigt.

Das Zahlenspiel spielen

Lassen Sie uns all das zusammenfügen, um das Zahlenspiel zu spielen. Generieren Sie zwei zufällige "große" Zahlen, vier zufällige "kleine" Werte und den Zielwert:

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

Meine Zahlen sind 75 , 100 , 4 , 3 , 10 und 2 , und meine Zielnummer ist 868 .

Ich komme der Zielzahl nahe, wenn ich diese Rechenoperationen mit jeder der "kleinen" und "großen" Zahlen nur einmal durchführe:

10×75 =750
750+100 =850

und:

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

Das sind nur noch vier – nicht schlecht! Aber ich habe diesen Weg gefunden, um die genaue Zahl mit jeder Zufallszahl nicht mehr als einmal zu berechnen:

4×2 =8
8×100 =800

und:

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

Oder ich könnte diese ausführen Berechnungen, um die Zielzahl genau zu erhalten. Dabei werden nur fünf der sechs Zufallszahlen verwendet:

4×3 =12
75+12 =87

und:

87×10 =870
870-2 =868

Geben Sie den Countdown ein Probieren Sie das Zahlenspiel aus und lassen Sie uns in den Kommentaren wissen, wie gut Sie abgeschnitten haben.


Linux
  1. Rechnen Sie in der Linux-Shell mit GNU bc

  2. Mehr als 10 Linux-VI-Befehle mit Beispielen

  3. Spielen Sie das Viral Wordle Game unter Linux

  4. Einige zufällige Einzeiler-Linux-Befehle [Teil 1]

  5. Linux-Befehle:Durchsuchen des virtuellen Speichers mit vmstat

RPM-Befehle in Linux mit Beispielen

SSH-Befehle in Linux mit Verwendungsbeispielen

Zeigen Sie Cheatsheets für Linux-Befehle mit dem Tealdeer-Tool an

Einige zufällige Einzeiler-Linux-Befehle [Teil 2]

Einige zufällige Einzeiler-Linux-Befehle [Teil 3]

So spielen Sie reine Windows-Spiele unter Linux mit Steam Play