¿Cuánto tarda en salir un número aleatorio en Python?

Propongo un ejercicio en Python que consiste en lo siguiente:

Se elige un número aleatorio comprendido entre ‘1’ y un valor especificado por el usuario. El algoritmo debe mostrar el número de veces que tarda en volver a salir ese mismo número de forma aleatoria un número ‘n’ especificado por el usuario de veces.

‘a’ es el número aleatorio sobre el que buscar repeticiones. ‘b’ es el número aleatorio que se va creando iterativamente y del que se busca que sea igual que ‘a’. Se ha creado un contador ‘i’ que lleva la cuenta del número de aciertos y un contador ‘j’ que lleva la cuenta del número de iteraciones hasta conseguir los ‘n’ aciertos. El código es el siguiente:

import random as rd

cuenta = 1000
a = rd.randint(1,cuenta)
n = 20
i = 0
j = 0

while i < n:
        b = rd.randint(1, cuenta)
        if b == a:
             i += 1
        else:
             j += 1

print('El número elegido ha sido el', a)
print('Ha tardado %d iteraciones' % j)

Por ejemplo, en este caso ha salido el número 92 (entre 1 y 100) y se ha buscado una única repetición, que ha tardado en salir 14 iteraciones:

En este caso se ha elegido un número entre 1 y 1000 (ha salido el 278) y se han buscado 3 repeticiones. Ha tardado 1377 iteraciones en salir:

Por último, se ha elegido el número 1981 de forma aleatoria entre el 1 y el 5000 y se han buscado 20 repeticiones del mismo número en el mismo intervalo. Ha tardado 82.725 iteraciones en salir las 20 repeticiones:

Deja una respuesta