GNU/Linux >> Tutoriales Linux >  >> Linux

Juega un divertido juego de matemáticas con comandos de Linux

Como muchas personas, he estado explorando muchos programas de televisión nuevos durante la pandemia. Recientemente descubrí un programa de juegos británico llamado Countdown , donde los concursantes juegan dos tipos de juegos:a palabras juego, donde intentan hacer la palabra más larga de un revoltijo de letras y un números juego, donde calculan un número objetivo a partir de una selección aleatoria de números. Debido a que disfruto de las matemáticas, me sentí atraído por el juego de los números.

El juego de números puede ser una adición divertida a su próxima noche de juegos en familia, así que quería compartir mi propia variación. Comienzas con una colección de números aleatorios, divididos en números "pequeños" del 1 al 10 y números "grandes" que son 15, 20, 25, y así sucesivamente hasta el 100. Eliges cualquier combinación de seis números, tanto grandes como pequeños. números.

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

A continuación, genera un número "objetivo" aleatorio entre 200 y 999. Luego, utilice operaciones aritméticas simples con sus seis números para tratar de calcular el número objetivo usando cada número "pequeño" y "grande" no más de una vez. Obtienes la mayor cantidad de puntos si calculas exactamente el número objetivo y menos puntos si puedes llegar a 10 del número objetivo.

Por ejemplo, si sus números aleatorios fueran 75, 100, 2, 3, 4 y 1, y su número objetivo fuera 505, podría decir 2+3=5 , 5×100=500 , 4+1=5 y 5+500=505 . O más directamente:(2 +3100 + 4 + 1 =505 .

Aleatorizar listas en la línea de comandos

Descubrí que la mejor manera de jugar este juego en casa es sacar cuatro números "pequeños" de un grupo de 1 a 10 y dos números "grandes" de múltiplos de cinco de 15 a 100. Puedes usar la línea de comando de Linux para crear estos números aleatorios para usted.

Comencemos con los números "pequeños". Quiero que estos estén en el rango de 1 a 10. Puede generar una secuencia de números usando Linux seq dominio. Puede ejecutar seq algunas maneras diferentes, pero la forma más simple es proporcionar los números iniciales y finales de la secuencia. Para generar una lista del 1 al 10, puede ejecutar este comando:

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

Para aleatorizar esta lista, puede usar Linux shuf comando ("shuffle"). shuf aleatorizará el orden de lo que le des, generalmente un archivo. Por ejemplo, si envía la salida de seq comando al shuf comando, recibirá una lista aleatoria de números entre 1 y 10:

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

Para seleccionar solo cuatro números aleatorios de una lista del 1 al 10, puede enviar el resultado al head comando, que imprime las primeras líneas de su entrada. Usa el -4 opción para especificar que head debe imprimir solo las primeras cuatro líneas:

$ seq 1 10 | shuf | head -4
6
1
8
4

Tenga en cuenta que esta lista es diferente del ejemplo anterior porque shuf generará un orden aleatorio cada vez.

Ahora puede dar el siguiente paso para generar la lista aleatoria de números "grandes". El primer paso es generar una lista de posibles números a partir del 15, aumentando de cinco en cinco, hasta llegar a 100. Puede generar esta lista con Linux seq dominio. Para incrementar cada número en cinco, inserte otra opción para el seq comando para indicar el paso :

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

Y al igual que antes, puede aleatorizar esta lista y seleccionar dos de los números "grandes":

$ seq 15 5 100 | shuf | head -2
75
40

Genera un número aleatorio con Bash

Supongo que podría usar un método similar para seleccionar el número objetivo del juego entre 200 y 999. Pero la solución más simple para generar un único valor aleatorio es usar RANDOM variable directamente en Bash. Cuando hace referencia a esta variable integrada, Bash genera un gran número aleatorio. Para poner esto en el rango de 200 a 999, primero debe colocar el número aleatorio en el rango de 0 a 799 y luego sumar 200.

Para poner un número aleatorio en un rango específico que comienza en 0, puede usar el módulo operación aritmética. Modulo calcula el resto después de dividir dos números. Si comencé con 801 y dividí por 800, el resultado es 1 con un resto de 1 (el módulo es 1). Dividir 800 por 800 da 1 con un resto de 0 (el módulo es 0). Y dividir 799 por 800 da como resultado 0 con un resto de 799 (el módulo es 799).

Bash admite la expansión aritmética con $(( )) construir. Entre los dobles paréntesis, Bash realizará operaciones aritméticas con los valores que proporcione. Para calcular el módulo de 801 dividido por 800 y luego sumar 200, debe escribir:

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

Con esa operación, puede calcular un número objetivo aleatorio entre 200 y 999:

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

Quizás se pregunte por qué usé RANDOM en lugar de $RANDOM en mi declaración de Bash. En la expansión aritmética, Bash expandirá automáticamente cualquier variable dentro de los paréntesis dobles. No necesitas el $ en el $RANDOM variable para hacer referencia al valor de la variable porque Bash lo hará por usted.

Jugando al juego de los números

Pongamos todo eso junto para jugar el juego de los números. Genere dos números "grandes" aleatorios, cuatro valores "pequeños" aleatorios y el valor objetivo:

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

Mis números son 75 , 100 , 4 , 3 , 10 y 2 , y mi número objetivo es 868 .

Puedo acercarme al número objetivo si realizo estas operaciones aritméticas usando cada uno de los números "pequeños" y "grandes" no más de una vez:

10×75 = 750
750+100 = 850

and:

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

Eso es sólo cuatro de distancia, ¡no está mal! Pero encontré esta forma de calcular el número exacto usando cada número aleatorio no más de una vez:

4×2 = 8
8×100 = 800

and:

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

O podría realizar estos cálculos para obtener el número objetivo exactamente. Esto usa solo cinco de los seis números aleatorios:

4×3 = 12
75+12 = 87

and:

87×10 = 870
870-2 = 868

Da la Cuenta atrás Prueba el juego de números y cuéntanos qué tan bien te fue en los comentarios.


Linux
  1. Haz matemáticas en el shell de Linux con GNU bc

  2. Más de 10 comandos de Linux VI con ejemplos

  3. Juega el juego de palabras virales en Linux

  4. Algunos comandos aleatorios de Linux de una sola línea [Parte 1]

  5. Comandos de Linux:exploración de la memoria virtual con vmstat

Comandos RPM en Linux con ejemplos

Comandos SSH en Linux con ejemplos de uso

Mostrar hojas de trucos de comandos de Linux con la herramienta Tealdeer

Algunos comandos aleatorios de Linux de una sola línea [Parte 2]

Algunos comandos aleatorios de Linux de una sola línea [Parte 3]

Cómo jugar juegos solo de Windows en Linux con Steam Play