計算PI 的方法

2021-07-09 22:09:27 字數 1192 閱讀 9476

今天看到hdu上有一題是要計算圓周率,查閱了一些資料,發現有這些方法:

1.正方形逼近;

2.迭代法;

3.蒙特卡羅法;

4.丘德諾夫斯基公式

$蒙特卡洛法

蒙特卡羅法是生成n多個隨機座標落在1×1的方格裡,統計x平方+y平方<1的個數的點即可。

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

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

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

如果這些點均勻分布,那麼圓內的點應該佔到所有點的 π/4,因此將這個比值乘以4,就是π的值。通過隨機模擬30000個點,π的估算值與真實值相差0.07%。

$丘德諾夫斯基公式

然後重點來了:

這是2023年的ioccc大賽上計算圓周率的**:

#define _ -f<00||--f-oo--;

int f=00,oo=00;main()f_oo()

用一段形狀是圓形的程式,通過計算**本身的面積,計算圓周率的近似值

之後我又發現一種超級簡潔而且收斂很快的演算法

按照這個思路寫了下**:

#includelong a=10000, b, c=28000, d, e, f[28001], g;

long ans[28001];

int func ()

int main ()

return 0;

}

注意的是每個ans[i]中儲存的是4位數;

最後,看了一大堆,我果斷的用打表來水過了hdu上的那題  (逃

hadoop中的pi值計算

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

OpenMP平行計算PI的值

用vs新建乙個工程後,首先要右鍵專案,屬性 c c 語言,在右邊的對話方塊中openmp支援選擇是 程式 為 include include include static long num steps 100000 double step,pi void main pi step sum clock...

蒙特卡洛方法的使用 計算pi值與積分計算

參考 coding utf 8 created on tue jan 22 07 38 15 2019 author ylz 用此種方法對pi值進行估計,就是蒙特卡洛方法 蒙特卡洛方法 1,產生大量的資料樣點 2,對資料樣點進行依據條件進行分割,分類 3,用每個類別中樣點數量的統計值,來計算某些引數...