CommencezCommencez gratuitement

Lancer un dé

Créons un générateur infini ! Votre tâche consiste à définir le générateur simulate_dice_throws(). Il produit les résultats des lancers d'un dé à 6 faces sous forme d'un dictionnaire out. Chaque clé est un résultat possible (1, 2, 3, 4, 5, 6). Chaque valeur est une liste : la première valeur est le nombre de réalisations d'un résultat et la deuxième, le rapport du nombre de réalisations sur le nombre total de lancers total. Par exemple (quand 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]
}

Conseil : utilisez la fonction randint() du module random (déjà importé). Elle génère un entier aléatoire dans l'intervalle indiqué (p. ex. randint(1, 2) peut être 1 ou 2).

Cette activité fait partie du cours

S'entraîner aux questions d'entrevue de programmation en Python

Voir le cours

Instructions de l’exercice

  • Simulez un seul lancer pour obtenir un nouveau nombre.
  • Mettez à jour le nombre et le rapport de réalisation.
  • Produisez (yield) le dictionnaire mis à jour.
  • Créez le générateur et simulez 1000 lancers.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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(____(____)))
Modifier et exécuter le code