圓周率java
❶ 用java計算圓周率 PI=4-4/3+4/5-4/7....... 列印出第一個大於 3.1415小於 3.1416的值
我感覺這樣優化點簡單點
public class PI
{
public static void main(String[] args)
{
double p=0;
double n=1;
while(p<=3.1415||p>=3.1416)
{
p-=(4/(2*n-1))*(Math.pow(-1,n));
n++;
}
System.out.println("圓周率是:"+p);
}
}
❷ 用java算圓周率的代碼,看看我寫的哪裡錯了
public class PIDemo { //類名稱不要用中文
public static void main(String[] args) {
int i=1,f=-1;
float sum=0.0f,num=1.0f; //sum初始值應該為0
while (Math.abs(num)>0.00001) {
f=-f;
num=f*1.0f/(2*i-1);
sum+=4*num; //這里應該是"+="而不是"=+",注意還要乘以4,將語句下調到這里
i++; //變數i要自增
}
System.out.println(sum);
}
}
輸出結果:3.1416159
PS:你還有一個很不好的習慣:類名稱不要用中文!!!
❸ java中π怎麼表示, 是直接用π嗎還是有別的變數代替
java中π用Math.PI表示,圓周率常量π被定義在java.lang.Math類中。輸出:3.141592653589793
代碼如下:
PI (π)的源碼如下:
/**
* The {@code double} value that is closer than any other to
* <i>pi</i>, the ratio of the circumference of a circle to its
* diameter.
*/
public static final double PI = 3.14159265358979323846;
(3)圓周率java擴展閱讀:
Java Math 類包含了用於執行基本數學運算的屬性和方法,如初等指數、對數、平方根和三角函數。
Math 的方法都被定義為 static 形式,通過 Math 類可以在主函數中直接調用。
比較常見的還有一個底數e,在java Math中表示如下:
public static final double E = 2.7182818284590452354;
Orcale官方API介面-Class Math
❹ Java中圓周率如何表示
import java.math.*
Math類定義了好多常量,如Math.PI等
❺ 用Java計算圓周率
代碼如下:
//圓周率 π = 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);
}
}
//程序運行結果
//第10
次計算
3.232315809405594
//第100
次計算
3.1514934010709914
//第1000
次計算
3.1425916543395442
//第10,000
次計算
3.1416926435905346
//第100,000
次計算
3.1416026534897203
//第1000,000
次計算
3.1415936535887745
//第10,000,000次計算
3.1415927535897814
//第100,000,000次計算
3.141592643589326
//第999,999,990次計算
3.1415926545880506
//第999,999,991次計算
3.1415926525880504
//第999,999,992次計算
3.1415926545880506
//第999,999,993次計算
3.1415926525880504
//第999,999,994次計算
3.1415926545880506
//第999,999,995次計算
3.1415926525880504
//第999,999,996次計算
3.1415926545880506
//第999,999,997次計算
3.1415926525880504
//第999,999,998次計算
3.1415926545880506
//第999,999,999次計算
3.1415926525880504
//第1,000,000,000次計算
3.1415926545880506
❻ java 圓周率。
圓周率的演算法
PI=(1-1/3+1/5-1/7+1/9……)*4循環次數越多,精確度越高
像你說的要計算 10000 位小數,普通的演算法是無法滿足的,一般需要大型計算機
參考代碼:
public class Test1 {
public static void main(String args[]) {
long time = System.currentTimeMillis();
Pi pi = new Pi(200000000);
pi.comput();
System.out.println(pi.getPi());
System.out.println("消耗時間>>" + (System.currentTimeMillis() - time));
}
}
class Pi {
private double pi;
private int count;
public Pi() {
}
public Pi(int count) {
this.count = count;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public double getPi() {
return pi;
}
public void comput() {
pi = 1;
int max = count * 2 + 1;
for (int i = 3; i <= max; i = i + 4) {
pi -= 1d / i;
}
for (int i = 5; i <= max; i = i + 4) {
pi += 1d / i;
}
pi *= 4;
}
}
❼ JAVA 求圓周率
建議你這樣試試看:
- 我們分析下題目,考慮一下容易忽略的地方
- 然後我們將公式轉化為如下代碼:
packagecn.com..question.pi;
publicclassStrivesForThePI{
publicstaticvoidmain(String[]args){
System.out.println("jdk的API中提供的π="+Math.PI);
//arctg()函數參數x;
doublex=1;
//驗證π/4=arctg(1);
doubleqtrPI=strives(x);
//求π並輸出
System.out.println("π="+4*qtrPI);
}
/**
*求解函數
*@returndoubles
*/
publicstaticdoublestrives(doublex){
inti=1;
doublen=1,d=0.000001,s=0,sTmp=1;
doubleerrorRange=s>sTmp?s-sTmp:sTmp-s;
while(errorRange>d){//誤差控制,由s和sTemp的差決定誤差,
//如果i=偶數i=(-1)*i
if(i%2==0){
n=(-1);
}else{
n=1;
}
//保存中間值,計算誤差使用
sTmp=s;
//計算Arg
s=s+n*((double)x/(2*i-1));
//誤差范圍排除第一項
if(i!=1){
errorRange=s>sTmp?s-sTmp:sTmp-s;
}
i++;
}
System.out.println("誤差為:"+errorRange);
if(x==1){
System.out.println("π/4="+s);
}
returns;
}
}
這樣做的好處:思路清晰,注釋明了
注意事項:這個並不是唯一的答案,還可以優化,歡迎大家自由討論.
如有幫助,感謝你的採納!
❽ java程序圓周率問題,求大神!!!!
題主的運算邏輯我搞不太清楚,while 里的這一段
b++;
pi=pi+sum/i;
i=i+2;
if(pi<3.1415927&&pi>3.1415926){
System.out.println(b);
}else{
pi=pi-sum/i;
i=i+2;
b++;
if(pi<3.1415927&&pi>3.1415926){
System.out.println(b);
}
}
並沒有區分何時加或者何時減sum / i,這樣會導致運算結果混亂,而且 π 值的判斷和 b 的輸出都寫了兩個,感覺不是很清楚。我重新寫了一個,題主可以參考。
publicclassTest{
publicstaticvoidmain(String[]args){
inttrial=0;
doubledenominator=1;
doublenumerator=4;
doublePI=0;
finaldoubleLOWER_BOUND=3.1415926;
finaldoubleUPPER_BOUND=3.1415927;
while(true){
trial++;
//計算次數為奇數時加,偶數時減
if(trial%2==0)
PI-=numerator/denominator;
else
PI+=numerator/denominator;
denominator+=2;
//判斷π值,符合要求精度後停止循環
if(PI>=LOWER_BOUND&&PI<=UPPER_BOUND)
break;
}
System.out.println("π≈"+PI);
System.out.println("計算次數:"+trial+"次");
}
}
結果如下:
❾ java程序計算圓周率有點小疑問
代碼如下://圓周率π=4∑(k=0,..∞)(-1)^k/(2k+1)//π=3.{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintn=0;doublea=0;for(n=0;n
❿ java圓周率計算
原理:根據圓面積的公式:s=πR2,當R=1時,S=π。由於圓的方程是:x^2+y^2=1(x^2為X的平方的意思),因此1/4圓面積為x軸、y軸和上述方程所包圍的部分。如果在1*1的矩形中均勻地落入隨機點,則落入1/4園中的點的概率就是1/4圓的面積。其4倍,就是圓面積。由於半徑為1,該面積的值為π的值。程序如下:importjava.util.Random;publicclasspai{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintN=100000;/*定義隨機點數*/intn=0,i,resulttimes;doubler;doublex,y;/*坐標*/Randoms=newRandom();for(resulttimes=0;resulttimes<10;resulttimes++){/*輸出十次結果*/for(i=1;i<=N;i++){x=s.nextDouble();/*在0~1之間產生一個隨機x坐標*/y=s.nextDouble();/*在0~1之間產生一個隨機y坐標*/if(x*x+y*y<=1.0)n++;/*統計落入單位圓中的點數*/}r=(double)n/N;System.out.println("Theresultofpaiis"+r*4);/*計算出π的值*/n=0;}}}