如何用蒙特卡羅方法計算圓周率π。
正方形內部有乙個相切的圓,它們的面積之比是π/4
現在,在這個正方形內部,隨機產生10000個點(即10000個座標對 (x, y)),計算它們與中心點的距離,從而判斷是否落在圓的內部。
如果這些點均勻分布,那麼圓內的點應該佔到所有點的 π/4,因此將這個比值乘以4,就是π的值。
from random import random
from math import sqrt
total = 100000
x = y = inn = out = 0.0
for i in range(total):
x = random()
y = random()
#print(x, y)
if (i % (total/10) == 0):
print(i)
if (sqrt(x * x + y * y)<1.0):
inn += 1.0
else:
out += 1.0
print(total, inn, out)
print(inn*4 / total)
Python 蒙特卡羅計算圓周率
蒙特卡羅方法於20世紀40年代美國在第二次世界大戰中研製原子彈的 曼哈頓計畫 計畫的成員s.m.烏拉姆和j.馮 諾伊曼首先提出。數學家馮 諾伊曼用馳名世界的賭城 摩納哥的monte carlo 來命名這種方法,為它蒙上了一層神秘色彩。在這之前,蒙特卡羅方法就已經存在。1777年,法國數學家布豐 ge...
python菜鳥 蒙特卡羅方法計算圓周率
蒙塔卡洛方法 四分之一圓 正方形 利用 random 函式生成隨機點 for in 迴圈 pow x 2 y 2,0.5 小於 圓半徑1的計數 點數越多越精確 自己嘗試寫的 import random defjudge a,b if pow a 2 b 2,0.5 1.0 return true e...
4 蒙特卡羅演算法求圓周率PI
蒙特卡羅演算法的典型應用之一為求圓周率pi問題。思想 乙個半徑r 1 的圓,其面積為 s pi r 2 pi 4 乙個邊長r 1 的正方形,其面積為 s r2 1 那麼建立乙個座標系,如果均勻的向正方形內撒點,那麼落入圓心在正方形中心,半徑為1的圓內的點數與全部點數的比例應該為pi 4,根據概率統計...