圓周率大家都不陌生,最早由歐幾里德《幾何原本》中提到圓周率是常數(shù),第一個(gè)用尋求圓周率數(shù)值的人是阿基米德,中國(guó)數(shù)學(xué)家劉徽,和后來(lái)大名鼎鼎的祖沖之分別對(duì)圓周率進(jìn)行了計(jì)算,從古到今對(duì)圓周率的計(jì)算方法有幾十種。
下面就介紹幾種求圓周率的方法:
這是粗略的求圓周率一種常用算法
在(0,0)和(1,1)范圍內(nèi)隨機(jī)投test_sum個(gè)點(diǎn),如果落到圓內(nèi),hit_sum數(shù)量加1,最后用hit_sum/test_sum算出落在圓內(nèi)的概率,
由得圓周率 PI=hit_sum / test_sum * 4
public class PI {
public static void main(String[] args) {
int test_sum = 1000000;// 投的點(diǎn)數(shù)
int hit_sum = 0;// 投中的個(gè)數(shù)
double x, y;// x和y坐標(biāo)點(diǎn)
for (int i = 0; i < test_sum; i++) {
// 隨機(jī)得到一個(gè)坐標(biāo)
x = Math.random();
y = Math.random();
if (x * x + y * y <= 1)// 判斷擲入的這個(gè)點(diǎn)在不在在圓內(nèi)
hit_sum++;
}
// 統(tǒng)計(jì)得到π的值
double pi = (double) hit_sum / test_sum * 4;
System.out.println("π的結(jié)果為:" + pi);
}
}
隨機(jī)測(cè)試的幾次結(jié)果:
π的結(jié)果為:3.140336
π的結(jié)果為:3.141012
π的結(jié)果為:3.141396
圓周率的公式特別多,介紹其中一個(gè)
這是一個(gè)迭代過(guò)程,code很容易,直接貼代碼了
public class PI {
public static void main(String[] args) {
double my_pi = 2;
int _jingdu = 1000;//精度控制
for (int i = _jingdu; i > 0; i--)
my_pi = my_pi * i / (2 * i + 1) + 2;
System.out.println(my_pi);
}
}
輸出結(jié)果:3.141592653589793
這一方法的步驟是:
1) 取一張白紙,在上面畫(huà)上許多條間距為d的平行線。
2) 取一根長(zhǎng)度為l(l<d) 的針,隨機(jī)地向畫(huà)有平行直線的紙上擲n次,觀察針與直線相交的次數(shù),記為m
3)計(jì)算針與直線相交的概率.
18世紀(jì),法國(guó)數(shù)學(xué)家蒲豐和勒可萊爾提出的“投針問(wèn)題”,記載于布豐1777年出版的著作中:“在平面上畫(huà)有一組間距為d的平行線,將一根長(zhǎng)度為l(l<d)的針任意擲在這個(gè)平面上,求此針與平行線中任一條相交的概率。”布豐本人證明了,這個(gè)概率是 p=2l/(πd)? π為圓周率。
這個(gè)方法真是不可思議,感興趣的朋友可以模擬一下。
證明:http://files.cnblogs.com/ysjxw/蒲豐投針與蒙特卡洛模擬.pdf
福利:四行代碼計(jì)算圓周率800位的怪異程序
#include
#include
int a=10000, b, c=2800, d, e, f[2801], g;
main()
{
for(;b-c;)
f[b++]=a/5;
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
return 0;
}
以上就是關(guān)于【求圓周率的幾種算法】的解答,如需了解學(xué)校/賽事/課程動(dòng)態(tài),可至翰林教育官網(wǎng)獲取更多信息。
往期文章閱讀推薦:
2026年夏季CIE機(jī)考即將開(kāi)啟!一文了解詳細(xì)規(guī)則!
2026愛(ài)德思1月大考重磅調(diào)整!三項(xiàng)新規(guī)緊急關(guān)注,錯(cuò)過(guò)細(xì)節(jié)可能影響成績(jī)!

? 2026. All Rights Reserved. 滬ICP備2023009024號(hào)-1