martes, 9 de febrero de 2021

Aleatoriedad en BASH.

 (P) Hugo Napoli, 2021 

Procedimiento para obtener un número aleatorio utilizando la función RANDOM% de BASH.
Explicación "paso a paso", utilizando la sintaxis necesaria para un programa para este lenguaje de programación.

Recuerda introducir la línea

#!/bin/bash

al inicio del script para que el mismo funcione. Si quieres, también puedes agregar (debajo del #!/bin/bash) el comando clear, para limpiar la pantalla y que tu programa luzca mejor.

# Preguntaremos al usuario cuáles serán los valores (mínimo y máximo) permitidos, y
# los guardaremos en las variables min y max, respectivamente.

read -p "Introduzca el valor mínimo: " min
read -p "Introduzca el valor máximo: " max

# Ahora, determinaremos cuántos números estarán involucrados en la generación
# del número aleatorio. Esto se logra restándole al máximo el mínimo. Si se busca
# hallar un número entre 50 y 100, estarán involucrados 50 números en el proceso
# 100 (valor máximo) - 50 (valor mínimo) = 50 números.

base=$(($max-$min))

# Sumaremos 1 al valor obtenido, para que el sistema de aleatoriedad interno de BASH
# no produzca valores a partir de 0, sino a partir de 1 (de este modo, en lugar de
# producirse valores entre 0 y 49, se producirán entre 1 y 50).

base=$((base+1))

# Generaremos un número aleatorio que tendrá como límite mayor el valor calculado
# hasta ahora. Si se buscaba un número entre el 50 y el 100, con este procedimiento,
# obtendremos, en realidad, un número del 1 al 50.

n_aleatorio=$(( RANDOM% $base ))

# Al valor aleatorio generado, debemos sumarle el mínimo, para ajustar los límites del
# número verdaderamente buscado. Recordemos que los límites, originalmente, eran
# 50 y 100, pero hubo que convertirlos en 1 (mínimo) y 50 (máximo) debido al
# funcionamiento interno de BASH para este tipo de procedimiento.

n_aleatorio=$((n_aleatorio+$min))

echo ""
echo "El número aleatorio resultante, es el siguiente:" $n_aleatorio
echo ""

No hay comentarios.:

Publicar un comentario