युग्मित पासा सिमुलेशन
लेसन के उदाहरण की तरह, आप दो थैलों से दो पासे फेंकेंगे, और हर थैले में तीन पक्षपाती (biased) पासे हैं.
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]]
फर्क यह है कि दोनों थैलों के पासे जोड़ों में बँधे हैं: यदि आप bag1 से दूसरा पासा चुनते हैं, तो आप bag2 से भी दूसरा पासा ही चुनेंगे. हर ट्रायल में:
- आप दोनों थैलों से एक जोड़ी पासों को रैंडमली चुनकर फेंकेंगे
- सफलता तब होगी जब
dice1औरdice2पर आए अंकों का योग आठ हो; अन्यथा असफलता
आपका काम roll_paired_biased_dice() फंक्शन में for-loop को पूरा करना है और इस फंक्शन का इस्तेमाल करके dice1 और dice2 पर आने वाले अंकों के हर यूनिक कॉम्बिनेशन के लिए सफलता की प्रायिकता निकालनी है.
आपके लिए निम्नलिखित पहले से इम्पोर्ट किए गए हैं: random, numpy as np, pandas as pd, seaborn as sns और matplotlib.pyplot as plt.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Monte Carlo Simulations
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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}))