蒙特卡洛方法計算圓周率

2021-10-14 08:41:50 字數 1016 閱讀 8446

import random

import math

defcalpai()

: n =

10000000

#隨機實驗次數

r =1.0#圓的半徑

a, b =

(0.0

,0.0

)#中心點

x_neg, x_pos = a - r, a + r #x座標取值範圍

y_neg, y_pos = b - r, b + r #y座標取值範圍

count =

0#落在圓內的概率

for i in

range(0

, n)

: x = random.uniform(x_neg, x_pos)

y = random.uniform(y_neg, y_pos)

if x*x + y*y <=

1.0:

count +=

1return

(count /

float

(n))*4

#print (count / float(n)) * 4

if __name__ ==

'__main__'

: value = calpai(

)print

("pi = "

,value)

print

("error = "

,100

*abs

(math.pi-value)

/math.pi,

"%")

第乙個例子是,如何用蒙特卡羅方法計算圓周率π。

正方形內部有乙個相切的圓,它們的面積之比是π/4。

現在,在這個正方形內部,隨機產生10000個點(即10000個座標對 (x, y)),計算它們與中心點的距離,從而判斷是否落在圓的內部。

如果這些點均勻分布,那麼圓內的點應該佔到所有點的 π/4,因此將這個比值乘以4,就是π的值。

蒙特卡洛法求圓周率

利用蒙特卡洛演算法求圓周率是乙個概率的方法,關於這方面的內容很多,而且也很容易理解,更多具體分析過程可以參考如下文章 下面是我的理解和 蒙特卡洛演算法是通過概率來計算pi的值的。對於乙個單位為1的正方形,以其某乙個頂點為圓心,邊為半徑在正方形內畫扇形 乙個1 4的圓形的扇形 那麼扇形的面積就是pi ...

利用蒙特卡洛演算法求圓周率

from 背景知識 蒙特卡洛是摩納哥公國第一大城市,與澳門 美國拉斯維加斯並稱世界三大賭城。位於地中海沿岸,首都摩納哥之北,建於阿爾卑斯山脈突出地中海的懸崖之上。景色優美,是地中海地區旅遊勝地。市內置有豪華的旅館 俱樂部 歌劇院 商店 游泳池 溫泉浴室 運動場等娛樂設施 城內開設有蒙特卡洛大賭場。賭...

蒙特卡洛方法 玩具例子 1 圓周率

正方形內部有乙個相切的圓,它們的面積之比是 4。由圓面積和正方形面積公式可得 s圓 面積s正 方形 r2 2 r 2 4現在向上面的正方形區域均勻的隨機撒點,通過計算落在圓內的點數與總的點數來估計 coding utf8 import numpy as np import matplotlib.py...