MulaiMulai sekarang secara gratis

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 dice1 dan dice2 sama 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

Lihat Kursus

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}))
Edit dan Jalankan Kode