Módulo Random
Como mencionábamos al inicio este módulo genera números aleatorios que pueden ser utilizados en simulaciones, también pudiera utilizarse para la construcción de juegos o de cualquier otra aplicación que requiera que haya valores no controlados.
Es importante destacar que tal vez para criptografía no resulte tan útil ya que estos números son pseudo aleatorios es decir existe un patrón definido al momento de generarlos, por lo que ante un ataque contra un código criptográfico pudiera no ser suficiente.
Hecha una vez la presentación y aclaratorias del caso vamos a ver algunas de las funciones o métodos que más resaltan del módulo:
random(): Retorna un número real aleatorio n tal que 0 ≤ n < 1.
getrandbits(n): Retorna bits aleatorios n, en la forma de un entero largo.
uniform(a, b ) Retorna un número real aleatorio n tal que a ≤ n < b.
randrange([start], stop, [step]): Retorna un número aleatorio de un rango (start, stop,
step) donde start es el inicio, stop es el límite y step es el salto entre los números.
choice(seq): Retorna un elemento aleatorio para la secuencia seq.
shuffle(seq[, random]): Mezcla la secuencia seq que se especifique.
sample(seq, n): Escoge n elementos aleatorios y únicos de la secuencia seq.
Ahora veamos algunos ejemplos de lo que podemos lograr con este módulo, el primero será un generador de fechas con un rango establecido, veamos el código en la siguiente imagen y luego iremos explicando:
Primero establecemos dos fechas con las cuales crearemos un límite inferior y un límite superior, luego hacemos el llamado con el siguiente código que podemos ver en la imagen:
Finalmente obtenemos el resultado y lo imprimimos utilizando asctime del módulo Time con lo cual podemos hacer legible la fecha obtenida:
Como vemos es bastante sencillo y practico su uso; sigamos con otro ejemplo, vamos a crear un lanzador de dados, en nuestro editor de texto preferido podemos colocar lo siguiente:
from random import randrange num = input('How many dice? ') sides = input('How many sides per die? ') sum = 0 for i in range(num): sum += randrange(sides) + 1 print 'The result is', sum
El código es bastante sencillo primero nos pide ingresar la cantidad de dados, luego la cantidad de lados de cada dado y hacemos un ciclo for donde obtenemos suma de la lanzada con la función randrange.
Una vez que ejecutamos el programa veremos algo similar a esto, los valores pueden variar y el resultado no debe ser siempre 10:
How many dice? 3 How many sides per die? 6 The result is 10
Como pudimos ver, fueron dos aplicaciones sencillas pero que utilizan parte del poder de la generación de valores aleatorios.
Con esto finalizamos este tutorial, con lo cual ya estamos en capacidad de poder obtener valores aleatorios con lo cual la contaremos con un recurso más para generar nuestras propias aplicaciones y programas.