原理:根據(jù)圓面積的公式:s=πR2,當(dāng)R=1時(shí),S=π。由于圓的方程是:x^2+y^2=1(x^2為X的平方的意思),因此1/4圓面積為x軸、y軸和上述方程所包圍的部分。如果在1*1的矩形中均勻地落入隨機(jī)點(diǎn),則落入1/4園中的點(diǎn)的概率就是1/4圓的面積。其4倍,就是圓面積。由于半徑為1,該面積的值為π的值。程序如下:importjava.util.Random;publicclasspai{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintN=100000;/*定義隨機(jī)點(diǎn)數(shù)*/intn=0,i,resulttimes;doubler;doublex,y;/*坐標(biāo)*/Randoms=newRandom();for(resulttimes=0;resulttimes10;resulttimes++){/*輸出十次結(jié)果*/for(i=1;i=N;i++){x=s.nextDouble();/*在0~1之間產(chǎn)生一個(gè)隨機(jī)x坐標(biāo)*/y=s.nextDouble();/*在0~1之間產(chǎn)生一個(gè)隨機(jī)y坐標(biāo)*/if(x*x+y*y=1.0)n++;/*統(tǒng)計(jì)落入單位圓中的點(diǎn)數(shù)*/}r=(double)n/N;System.out.println("Theresultofpaiis"+r*4);/*計(jì)算出π的值*/n=0;}}}

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的新榮網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
建議你這樣試試看:
我們分析下題目,考慮一下容易忽略的地方
然后我們將公式轉(zhuǎn)化為如下代碼:
package?cn.com.baidu.zhidaoquestion.pi;
public?class?StrivesForThePI?{
public?static?void?main(String[]?args)?{
System.out.println("jdk的API中提供的π?=?"+Math.PI);
//arctg()函數(shù)參數(shù)x;
double?x?=?1;
//驗(yàn)證?π/4?=?arctg(1);
double?qtrPI?=?strives(x);
//求π并輸出
System.out.println("π?=?"?+?4*qtrPI);
}
/**
?*?求解函數(shù)
?*?@return?double?s
?*/
public?static?double?strives(double?x){
int?i?=?1?;
double?n?=?1,?d?=?0.000001,s?=?0,sTmp?=?1;
double?errorRange?=??ssTmp?s-sTmp:sTmp-s;
while(errorRange??d){//誤差控制,由s和sTemp的差決定誤差?,
//如果i=偶數(shù)??i?=?(-1)*i
if(i%2==0){
n?=?(-1);
}else{
n?=?1;
}
//保存中間值,計(jì)算誤差使用
sTmp?=?s;
//計(jì)算Arg
s?=?s?+?n*((double)x/(2*i-1));
//誤差范圍?排除第一項(xiàng)
if(i!=1){
errorRange?=?ssTmp?s-sTmp:sTmp-s;
}
i++;
}
System.out.println("誤差為:"+errorRange);
if(x==1){
System.out.println("π/4?=?"?+?s);
}
return?s;
}
}
這樣做的好處:思路清晰,注釋明了
注意事項(xiàng):這個(gè)并不是唯一的答案,還可以優(yōu)化,歡迎大家自由討論.
如有幫助,感謝你的采納!
代碼如下:
//圓周率 π = 4∑(k=0,..∞)(-1)^k/(2k+1)
//π = 3.14159265358979323846
public class yzq {
public static void main(String[] args) {
// TODO Auto-generated method
stub
int n=0;
double a=0;
for (n=0;n=10000000;n++ )
{
a = a + 4*Math.pow(-1,n)/(2*n+1);
System.out.println("第 "+n+"
位
"+a);
}
System.out.println("最后一位
"+a);
}
}
//程序運(yùn)行結(jié)果
//第10
次計(jì)算
3.232315809405594
//第100
次計(jì)算
3.1514934010709914
//第1000
次計(jì)算
3.1425916543395442
//第10,000
次計(jì)算
3.1416926435905346
//第100,000
次計(jì)算
3.1416026534897203
//第1000,000
次計(jì)算
3.1415936535887745
//第10,000,000次計(jì)算
3.1415927535897814
//第100,000,000次計(jì)算
3.141592643589326
//第999,999,990次計(jì)算
3.1415926545880506
//第999,999,991次計(jì)算
3.1415926525880504
//第999,999,992次計(jì)算
3.1415926545880506
//第999,999,993次計(jì)算
3.1415926525880504
//第999,999,994次計(jì)算
3.1415926545880506
//第999,999,995次計(jì)算
3.1415926525880504
//第999,999,996次計(jì)算
3.1415926545880506
//第999,999,997次計(jì)算
3.1415926525880504
//第999,999,998次計(jì)算
3.1415926545880506
//第999,999,999次計(jì)算
3.1415926525880504
//第1,000,000,000次計(jì)算
3.1415926545880506
Java中Math.PI就表示π。其源碼為public static final double PI = 3.14159265358979323846。
比如說(shuō)你要算半徑為2的圓的面積,代碼如下:
double pi=Math.PI
int r=2
double S=pi*r*r
運(yùn)行結(jié)果如下圖
擴(kuò)展資料
package 計(jì)算π的近似值;
import java.util.Scanner;
public class Example1 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("請(qǐng)輸入精度:");
double z=scan.nextDouble();
System.out.println("在精度為"+z+"的條件下,π約等于:\n"+jishuPI(z));
}
static double jishuPI(double z){
double sum=2;
int n=1;
int m=3;
double t=2;
while(tz){
t=t*n/m;
sum=sum+t;
n++;
m+=2;
}
return sum;
}
}
參考資料:Java官網(wǎng) API-Class Math
分享名稱:圓周率計(jì)算java代碼 圓周率在java中怎么寫
網(wǎng)站URL:http://www.yijiale78.com/article20/ddocejo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、微信公眾號(hào)、做網(wǎng)站、微信小程序、外貿(mào)建站、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)