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
dice1etdice2totalisent 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
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}))