利用蒙特卡洛分析法求解圓周率

首先引用百度百科的蒙特卡洛分析法介紹

蒙特卡羅分析法(Monte Carlo method)(統計模擬法),是一種採用隨機抽樣(Random Sampling)統計來估算結果的計算方法,可用於估算圓周率,由約翰·馮·諾伊曼提出。由於計算結果的精確度很大程度上取決於抽取樣本的數量,一般需要大量的樣本數據,因此在沒有計算機的時代並沒有受到重視。

 

蒙特卡洛分析法利用正方形的面積跟正方形體內最大圓的面積比值爲4:π來求解π的值!

假設給正方形內部隨機仍石子,那麼落在圓裏面的概率爲四分之π,當石子數量足夠大的時候就可以i精確的求出π的值了!現代利用計算機可以很容易的模擬出來。以下是代碼展示.

 

import random                      #引入隨機數庫
N = 1000*1000                      #定義循環次數
list=0.0                                  #落入圓中的石子數量
for i in range(1,1+N):
    x = random.uniform(0,1)              #模擬石子的隨機座標
    y = random.uniform(0,1)
    if (pow(x,2) + pow(y,2)) <= 1:
        list = list+1
print(4*(list/N))                                  #打出圓周率

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章