蓝桥杯一道题,求解
圆周率
我国古代数学家对圆周率方面的研究工作,成绩是突出的。三国时期的刘徽、南北朝时期的祖冲之都在这个领域取得过辉煌战绩。
有了计算机,圆周率的计算变得十分容易了。如今,人们创造了上百种方法求π的值。其中比较常用且易于编程的是无穷级数法。
π/4 = 1 – 1/3 + 1/5 – 1/7 + 1/9 - …
是初学者特别喜欢的一个级数形式,但其缺点是收敛太慢。
π/2 = 1 + 1/3 +1/3*2/5 + 1/3*2/5*3/7 + 1/3*2/5*3/7*4/9 + …
是收敛很快的一个级数方法。下面的代码演示了用这种方法计算π值。请填写缺失的代码部分。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
double x = 1;
double y = 1;
int a = 1;
int b = 3;
while(y>1e-15)
{
y = __ y*(a/(2.0*a+1))________;
x += y;
a++;
b += 2;
}
System.out.println(x*2);
while(y>1e-15)
这里面的 le 什么 求解释,谢了
------解决方案--------------------1e-15 科学计数法,表示 1×0.1^15
------解决方案--------------------
------解决方案--------------------应该就是 y*(a/(2.0*a+1));
while(y>1e-15)
y就是每个单项式的值
即1 + 1/3 +1/3*2/5 + 1/3*2/5*3/7 + 1/3*2/5*3/7*4/9 + …
第一次循环y是1/3,第二次是1/3*2/5。。。
可以看出y是收敛的,y越来越小
直到y<1e-15就跳出循环
x是单项式之和,最后输出2*x,应该就是π的值
------解决方案--------------------如果是按照π/2的算法,那空格里面什么都不用填就是正确的
y的规律就是y乘以一个分子是1、2、3、4规律增长的,分母是3、5、7、9规律增长的分数,也就是
y = y*(a/(2.0*a+1));