Lanza un dado
¡Vamos a crear un generador infinito! Tu tarea es definir el generador simulate_dice_throws(). Genera los resultados de lanzamientos de un dado de 6 caras en forma de diccionario out. Cada clave es un resultado posible (1, 2, 3, 4, 5, 6). Cada valor es una lista: el primer valor es el número de veces que ha salido ese resultado y el segundo, la proporción respecto al número total de lanzamientos total. Por ejemplo (cuando total = 4):
{
1: [2, 0.5],
2: [1, 0.25],
3: [1, 0.25],
4: [0, 0.0],
5: [0, 0.0],
6: [0, 0.0]
}
Consejo: usa la función randint() del módulo random (ya importado). Genera un entero aleatorio en el intervalo especificado (p. ej., randint(1, 2) puede ser 1 o 2).
Este ejercicio forma parte del curso
Practicing Coding Interview Questions in Python
Instrucciones del ejercicio
- Simula un único lanzamiento para obtener un nuevo número.
- Actualiza el recuento y la proporción de ese resultado.
- Devuelve con
yieldel diccionario actualizado. - Crea el generador y simula 1000 lanzamientos.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
def simulate_dice_throws():
total, out = 0, dict([(i, [0, 0]) for i in range(1, 7)])
while True:
# Simulate a single toss to get a new number
num = ____
total += 1
# Update the number and the ratio of realizations
out[num][0] = ____
for j in range(1, 7):
out[j][1] = round(____/____, 2)
# Yield the updated dictionary
____
# Create the generator and simulate 1000 tosses
dice_simulator = ____
for i in range(1, 1001):
print(str(i) + ': ' + str(____(____)))