Simulação de dados emparelhados
Da mesma forma que no exemplo da lição, você lançará dois dados de dois sacos, e cada saco contém três dados enviesados.
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]]
A diferença é que os dados nos dois sacos estão emparelhados: se você escolher o segundo dado em bag1
, também escolherá o segundo dado em bag2
. Em cada tentativa:
- Você escolhe um par de dados dos dois sacos aleatoriamente e os lança
- Você terá sucesso se os pontos em
dice1
edice2
somarem oito; caso contrário, haverá falha
Sua tarefa é concluir o loop for na função roll_paired_biased_dice()
e usar essa função para calcular as probabilidades de sucesso para cada combinação exclusiva de pontos em dice1
e dice2
.
Os seguintes itens foram importados para você: random
, numpy
como np
, pandas
como pd
, seaborn
como sns
e matplotlib.pyplot
como plt
.
Este exercício faz parte do curso
Simulações de Monte Carlo em Python
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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}))