理想小青年 发表于 2018-4-8 11:53:25

圆周率题疑问

理解如下
/*思路 :
                        π/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 但是这种思想理解不了 看明白的回复一下 谢谢好人平安!

BngThea 发表于 2018-4-8 11:59:13

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范围内?

理想小青年 发表于 2018-4-8 12:52:47

BngThea 发表于 2018-4-8 11:59
Q1:这样的话 pi += t; 那么怎么没有减数如 1/3-1/5数值呢 ?
t在每次循环的都是都被赋值为s/n,而每次循 ...

感谢 我还得悟
页: [1]
查看完整版本: 圆周率题疑问