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
dice1vedice2ü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ı
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}))