CommencerCommencez gratuitement

Simulation de dés appariés

Comme dans l’exemple de la leçon, vous allez lancer deux dés provenant de deux sacs, et chaque sac contient trois dés biaisés.

bag1 = [[1, 2, 3, 6, 6, 6], [1, 2, 3, 4, 4, 6], [1, 2, 3, 3, 3, 5]]
bag2 = [[2, 2, 3, 4, 5, 6], [3, 3, 3, 4, 4, 5], [1, 1, 2, 4, 5, 5]]

La différence est que les dés dans les deux sacs sont appariés : si vous choisissez le deuxième dé de bag1, vous choisirez aussi le deuxième dé de bag2. À chaque essai :

  • Vous choisissez au hasard une paire de dés parmi les deux sacs et vous les lancez.
  • Il y a succès si les points de dice1 et dice2 totalisent huit ; sinon, c’est un échec.

Votre tâche est de compléter la boucle for dans la fonction roll_paired_biased_dice() et d’utiliser cette fonction pour calculer les probabilités de succès pour chaque combinaison unique de points sur dice1 et dice2.

Les éléments suivants ont été importés pour vous : random, numpy sous np, pandas sous pd, seaborn sous sns et matplotlib.pyplot sous plt.

Cet exercice fait partie du cours

<cours>Simulations de Monte Carlo en Python</cours>
Voir le cours

Exercice interactif pratique

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

def roll_paired_biased_dice(n, seed=1231):
    random.seed(seed)
    results={}
    for i in range(n):
        bag_index = random.randint(0, 1)
        # Obtain the dice indices
        dice_index1 = ____
        dice_index2 = ____
        # Sample a pair of dice from bag1 and bag2
        point1 = ____
        point2 = ____
        key = "%s_%s" % (point1,point2)
        if point1 + point2 == 8: 
            if key not in results:
                results[key] = 1
            else:
                results[key] += 1
    return(pd.DataFrame.from_dict({'dice1_dice2':results.keys(),
		'probability_of_success':np.array(list(results.values()))*100.0/n}))
Modifier et exécuter le code