ipyparallel 中的 pi的求法

2022-05-26 15:00:08 字數 925 閱讀 1180

1.pi的求法的數學依據

如圖,可以看見在邊長為1的正方形裡面,有乙個1/4圓,我們隨機在正方形中取點,點在圓內的概率和點在正方形內的概率之比正好為兩者的面積之比.這樣就有在圓內的點的數目比所有點的數目值應該為0.25*π*1/1=0.25π.只要我們隨機取點的數目足夠多,根據上述關係求得的π的精確率就越高.我們最終可以得到π=4*在圓內的點的數目/所有點的數目,據此,可以寫出如下程式:

from numpy.random import

rand

defsample(n):

return (rand(n)**2+rand(n)**2<=1).sum()

n=1000000pi=4*sample(n)*1.0/n

print pi

輸出:3.140556(此值可能會變化)

根據上述程式,可以將求π的程式改寫成並行版本:

from ipyparallel import *rc=client()

dview=rc[:]

with dview.sync_imports():

from numpy.random import

rand

defsample(n):

return (rand(n)**2+rand(n)**2<=1).sum()

n=1000000list=[n]*len(dview)

#list 由 len(dview)個n構成,正好每乙個engine乙個

pi=4*sum(dview.map_sync(sample,list))*1.0/(n*len(dview))

print pi

輸出:3.141763(每次輸出都不一樣)

hadoop中的pi值計算

注意在hadoop中,操作一定要規範。不規範的操作引起exception滿天飛 其實hadoop中的pi值運算還是挺簡單的。在這裡主要講一下這個例子中要注意的地方 hadoop master hadoop 1.0.3 hadoop jar hadoop examples 1.0.3.jar pi 1...

計算PI 的方法

今天看到hdu上有一題是要計算圓周率,查閱了一些資料,發現有這些方法 1.正方形逼近 2.迭代法 3.蒙特卡羅法 4.丘德諾夫斯基公式 蒙特卡洛法 蒙特卡羅法是生成n多個隨機座標落在1 1的方格裡,統計x平方 y平方 1的個數的點即可。如何用蒙特卡羅方法計算圓周率 呢 正方形內部有乙個相切的圓,它們...

注意地方hadoop中的pi值計算

題記 寫這篇部落格要主是加深自己對注意地方的認識和總結實現演算法時的一些驗經和訓教,如果有錯誤請指出,萬分感謝。注意在hadoop中,作操一定要標準。不標準的作操引發exception滿天飛 其實hadoop中的pi值運算還是挺單簡的。在這裡主要講一下這個例子中要注意的地方 每日一道理 那蝴蝶花依然...