圆周率题疑问
理解如下/*思路 :
π/4≈1+1/3-1/5+1/7-1/9+1/11.....
根据公式分析:
π/4≈1+(1/3-1/5)+(1/7-1/9)+(1/11-1/13)....
所以:
所以分子递增+2(素数),每两两和相减,π的值*4
*/
可是小甲鱼代码中核心
while(fabs(t) > 1e-6)
{
pi = pi+t;
n = n+2;
s = -s;
t = s/n;
}
问题如下:
Q1:这样的话 pi += t; 那么怎么没有减数如 1/3-1/5数值呢 ?
Q2:fabs()函数绝对值 应该是过程结束以后,而不是每一个分数如Q4, 仅仅结果 fabs(pi)不对吗?
Q3:t = 1/3 + (-1/5) 不该这样吗?
Q4:按照 s = -s??为什么把每个分数都绝对值?
Q5:理解: 1+1/3+1/5+1/7....? 全是加(pi = pi + t)?
Q6:1e-6 = 1*10的负6次方?0.000001?? 意思为fabs(t)小数精度在0.000001范围内?
一个小程序问题有点多 按照自己的思想做出来都是BUG 但是这种思想理解不了 看明白的回复一下 谢谢好人平安! Q1:这样的话 pi += t; 那么怎么没有减数如 1/3-1/5数值呢 ?
t在每次循环的都是都被赋值为s/n,而每次循环s=-s,表示其取相反数
Q2:fabs()函数绝对值 应该是过程结束以后,而不是每一个分数如Q4, 仅仅结果 fabs(pi)不对吗?
这里用来做循环判断条件的意思是叠加的最小值不需要小于1e-6,你用fabs(pi)那这个条件永远不会成立
Q3:t = 1/3 + (-1/5) 不该这样吗?
就是这样
Q4:按照 s = -s??为什么把每个分数都绝对值?
不是取绝对值,而是取相反数,参考Q1
Q5:理解: 1+1/3+1/5+1/7....? 全是加(pi = pi + t)?
每次循环加一项,参考Q1
Q6:1e-6 = 1*10的负6次方?0.000001?? 意思为fabs(t)小数精度在0.000001范围内?
是 BngThea 发表于 2018-4-8 11:59
Q1:这样的话 pi += t; 那么怎么没有减数如 1/3-1/5数值呢 ?
t在每次循环的都是都被赋值为s/n,而每次循 ...
感谢 我还得悟
页:
[1]