Simulasi pasangan dadu
Mirip dengan contoh dalam pelajaran, Anda akan melempar dua dadu dari dua kantong, dan setiap kantong berisi tiga dadu bias.
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]]
Perbedaannya adalah dadu di kedua kantong dipasangkan: jika Anda memilih dadu kedua di bag1, Anda juga akan memilih dadu kedua di bag2. Pada setiap percobaan:
- Anda memilih sepasang dadu dari dua kantong secara acak dan melemparkannya
- Keberhasilan terjadi jika jumlah mata pada
dice1dandice2sama dengan delapan; jika tidak, dianggap gagal
Tugas Anda adalah melengkapi for-loop dalam fungsi roll_paired_biased_dice() dan menggunakan fungsi ini untuk menghitung probabilitas keberhasilan untuk setiap kombinasi unik nilai mata pada dice1 dan dice2.
Berikut telah diimpor untuk Anda: random, numpy sebagai np, pandas sebagai pd, seaborn sebagai sns, dan matplotlib.pyplot sebagai plt.
Latihan ini adalah bagian dari kursus
Simulasi Monte Carlo di Python
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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}))