圆周率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;}}}