BaşlayınÜcretsiz başlayın

Eşlenik zar simülasyonu

Dersteki örneğe benzer şekilde, iki torbadan ikişer zar atacaksın ve her torbada hileli üçer zar var.

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]]

Fark şu: iki torbadaki zarlar eşlenik. bag1 içinden ikinci zarı seçersen, bag2 içinden de ikinci zarı seçersin. Her denemede:

  • İki torbadan rastgele bir zar çifti seçip atarsın
  • dice1 ve dice2 üzerindeki puanlar toplamı sekizse başarı; değilse başarısızlık

Görevin, roll_paired_biased_dice() fonksiyonundaki for döngüsünü tamamlamak ve bu fonksiyonu kullanarak dice1 ve dice2 üzerindeki her benzersiz puan kombinasyonu için başarı olasılıklarını hesaplamak.

Senin için şu paketler içe aktarıldı: random, numpy (np olarak), pandas (pd olarak), seaborn (sns olarak) ve matplotlib.pyplot (plt olarak).

Bu egzersiz, kursun bir parçasıdır

Python ile Monte Carlo Simülasyonları

Kursa Göz Atın

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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}))
Kodu Düzenle ve Çalıştır