用蒙特卡羅方法求解圓周率 python

2021-09-26 02:52:58 字數 607 閱讀 8107

如何用蒙特卡羅方法計算圓周率π。

正方形內部有乙個相切的圓,它們的面積之比是π/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,根據概率統計...