Python में Monte Carlo Simulations
Izzy Weber
Curriculum Manager, DataCamp
इनपुट वैरिएबल तय करें और उनके लिए प्रायिकता वितरण चुनें
इन वितरणों से सैंपल लेकर इनपुट जनरेट करें
सिम्युलेटेड इनपुट पर निर्धारक गणना करें
परिणामों का सार बनाएं
रैंडम पॉइंट्स $(x, y)$ जनरेट करें, जहाँ $x$ और $y$ का मान -1 से 1 के बीच हो.

$$Area_{circle} = \pi $$
$$Area_{square} = 2 \times 2 = 4 $$
$$\frac{Area_{circle}}{Area_{square}} = \frac{\pi}{4} $$
$$\frac{n_{red}}{n_{all}} = \frac{\pi}{4} $$
$$ \pi = 4 \times \frac{n_{red}}{n_{all}}$$
इनपुट वैरिएबल तय करें और उनके लिए प्रायिकता वितरण चुनें
circle_points = 0
square_points = 0
इन वितरणों से सैंपल लेकर इनपुट जनरेट करें
-1 से 1 के बीच यूनिफॉर्म रूप से वितरित रैंडम $x$ और $y$ कोऑर्डिनेट वैल्यू सैंपल करें:
for i in range(n):
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
सिम्युलेटेड इनपुट की निर्धारक गणना करें
जाँचें कि हर बिंदु वृत्त के भीतर है या नहीं: दिए गए $x$ और $y$ के लिए निर्धारक
dist_from_origin = x**2 + y**2
अगर हाँ, तो बिंदु circle_points में जोड़ें; हर बार बिंदु square_points में जोड़ें
if dist_from_origin <= 1:
circle_points += 1
square_points += 1
दिलचस्प प्रश्नों के उत्तर के लिए परिणामों का सार बनाएं
कई राउंड के सिमुलेशन के बाद, pi का मान निकालें!
pi = 4 * circle_points/ square_points
n = 4000000 circle_points = 0 square_points = 0for i in range(n): x = random.uniform(-1, 1) y = random.uniform(-1, 1) dist_from_origin = x**2 + y**2 if dist_from_origin <= 1: circle_points += 1 square_point += 1pi = 4 * circle_points / square_points print(pi)
3.142518
Python में Monte Carlo Simulations