CommencerCommencer 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

Simulations de Monte Carlo en Python

Afficher le cours

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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