GNU/Linux >> Tutoriels Linux >  >> Linux

Jouez à un jeu mathématique amusant avec les commandes Linux

Comme beaucoup de gens, j'ai exploré de nombreuses nouvelles émissions de télévision pendant la pandémie. J'ai récemment découvert un jeu télévisé britannique appelé Countdown , où les participants jouent à deux types de jeux :un jeu de mots jeu, où ils essaient de faire le mot le plus long à partir d'un fouillis de lettres et de chiffres jeu, où ils calculent un nombre cible à partir d'une sélection aléatoire de nombres. Parce que j'aime les mathématiques, j'ai été attiré par le jeu des nombres.

Le jeu de nombres peut être un ajout amusant à votre prochaine soirée de jeux en famille, alors je voulais partager ma propre variante. Vous commencez avec une collection de nombres aléatoires, divisés en "petits" nombres de 1 à 10 et en "grands" nombres qui sont 15, 20, 25, et ainsi de suite jusqu'à 100. Vous choisissez n'importe quelle combinaison de six nombres à la fois grands et petits nombres.

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Ensuite, vous générez un nombre "cible" aléatoire entre 200 et 999. Ensuite, utilisez des opérations arithmétiques simples avec vos six nombres pour essayer de calculer le nombre cible en utilisant chaque "petit" et "grand" nombre pas plus d'une fois. Vous obtenez le plus grand nombre de points si vous calculez exactement le nombre cible et moins de points si vous pouvez obtenir moins de 10 du nombre cible.

Par exemple, si vos nombres aléatoires étaient 75, 100, 2, 3, 4 et 1, et que votre nombre cible était 505, vous pourriez dire 2+3=5 , 5×100=500 , 4+1=5 , et 5+500=505 . Ou plus directement :(2 +3100 + 4 + 1 =505 .

Listes aléatoires sur la ligne de commande

J'ai trouvé que la meilleure façon de jouer à ce jeu à la maison est de tirer quatre "petits" nombres d'un pool de 1 à 10 et deux "grands" nombres de multiples de cinq de 15 à 100. Vous pouvez utiliser la ligne de commande Linux pour créer ces nombres aléatoires pour vous.

Commençons par les "petits" nombres. Je veux que ceux-ci soient compris entre 1 et 10. Vous pouvez générer une séquence de nombres en utilisant Linux seq commande. Vous pouvez exécuter seq de différentes manières, mais la forme la plus simple consiste à fournir les numéros de début et de fin de la séquence. Pour générer une liste de 1 à 10, vous pouvez exécuter cette commande :

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

Pour randomiser cette liste, vous pouvez utiliser le Linux shuf ("mélanger"). shuf randomisera l'ordre de tout ce que vous lui donnez, généralement un fichier. Par exemple, si vous envoyez la sortie du seq commande au shuf commande, vous recevrez une liste aléatoire de nombres entre 1 et 10 :

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

Pour sélectionner seulement quatre nombres aléatoires dans une liste de 1 à 10, vous pouvez envoyer la sortie au head commande, qui imprime les premières lignes de son entrée. Utilisez le -4 option pour spécifier que head ne doit imprimer que les quatre premières lignes :

$ seq 1 10 | shouf | tête -4
6
1
8
4

Notez que cette liste est différente de l'exemple précédent car shuf générera une commande aléatoire à chaque fois.

Vous pouvez maintenant passer à l'étape suivante pour générer la liste aléatoire des "grands" nombres. La première étape consiste à générer une liste de nombres possibles commençant à 15, incrémentés de cinq, jusqu'à ce que vous atteigniez 100. Vous pouvez générer cette liste avec le Linux seq commande. Pour incrémenter chaque nombre de cinq, insérez une autre option pour le seq commande pour indiquer l'étape :

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

Et comme avant, vous pouvez randomiser cette liste et sélectionner deux des "grands" nombres :

$ seq 15 5 100 | shouf | tête -2
75
40

Générer un nombre aléatoire avec Bash

Je suppose que vous pourriez utiliser une méthode similaire pour sélectionner le nombre cible du jeu dans la plage de 200 à 999. Mais la solution la plus simple pour générer une seule valeur aléatoire est d'utiliser le RANDOM variable directement dans Bash. Lorsque vous référencez cette variable intégrée, Bash génère un grand nombre aléatoire. Pour placer cela dans la plage de 200 à 999, vous devez d'abord mettre le nombre aléatoire dans la plage de 0 à 799, puis ajouter 200.

Pour mettre un nombre aléatoire dans une plage spécifique commençant à 0, vous pouvez utiliser le modulo opération arithmétique. Modulo calcule le reste après avoir divisé deux nombres. Si j'ai commencé avec 801 et divisé par 800, le résultat est 1 avec un reste de 1 (le modulo est 1). Diviser 800 par 800 donne 1 avec un reste de 0 (le modulo est 0). Et diviser 799 par 800 donne 0 avec un reste de 799 (le modulo est 799).

Bash prend en charge l'expansion arithmétique avec le $(( )) construction. Entre les doubles parenthèses, Bash effectuera des opérations arithmétiques sur les valeurs que vous fournissez. Pour calculer le modulo de 801 divisé par 800, puis ajouter 200, vous taperez :

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

Avec cette opération, vous pouvez calculer un nombre cible aléatoire entre 200 et 999 :

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

Vous vous demandez peut-être pourquoi j'ai utilisé RANDOM au lieu de $RANDOM dans ma déclaration Bash. Dans l'expansion arithmétique, Bash développera automatiquement toutes les variables entre les doubles parenthèses. Vous n'avez pas besoin du $ sur le $RANDOM variable pour référencer la valeur de la variable car Bash le fera pour vous.

Jouer au jeu des nombres

Mettons tout cela ensemble pour jouer au jeu des nombres. Générez deux "grands" nombres aléatoires, quatre "petites" valeurs aléatoires et la valeur cible :

$ seq 15 5 100 | shouf | tête -2
75
100
$ seq 1 10 | shouf | head -4
4
3
10
2
$ echo $(( RANDOM % 800 + 200 ))
868

Mes chiffres sont 75 , 100 , 4 , 3 , 10 , et 2 , et mon numéro cible est 868 .

Je peux me rapprocher du nombre cible si j'effectue ces opérations arithmétiques en utilisant chacun des "petits" et "grands" nombres pas plus d'une fois :

10×75 =750
750+100 =850

et :

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

Ce n'est qu'à quatre, pas mal ! Mais j'ai trouvé cette façon de calculer le nombre exact en utilisant chaque nombre aléatoire pas plus d'une fois :

4×2 =8
8×100 =800

et :

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

Ou je pourrais effectuer ces calculs pour obtenir exactement le nombre cible. Cela utilise seulement cinq des six nombres aléatoires :

4×3 =12
75+12 =87

et :

87×10 =870
870-2 =868

Donnez le compte à rebours essayez le jeu de nombres et faites-nous savoir si vous avez bien réussi dans les commentaires.


Linux
  1. Faites des calculs dans le shell Linux avec GNU bc

  2. 10+ commandes Linux VI avec des exemples

  3. Jouez au jeu Viral Wordle sous Linux

  4. Quelques commandes Linux aléatoires à une ligne [Partie 1]

  5. Commandes Linux :explorer la mémoire virtuelle avec vmstat

Commandes RPM sous Linux avec exemples

Commandes SSH sous Linux avec exemples d'utilisation

Afficher les feuilles de triche des commandes Linux avec l'outil Tealdeer

Quelques commandes Linux aléatoires à une ligne [Partie 2]

Quelques commandes Linux aléatoires à une ligne [Partie 3]

Comment jouer à des jeux Windows uniquement sur Linux avec Steam Play