找回密码
 欢迎注册
楼主: abiao

[原创] 我想的圆周率计算法,1万位十进制精度计算时间在数秒至数十秒左右

[复制链接]
发表于 2010-8-17 12:11:43 | 显示全部楼层
本帖最后由 wayne 于 2010-8-18 12:24 编辑 使用 Borwein四次迭代式 应该最快 但是现在世界上最快的计算pi的程序一般用的是 Ramanujan公式 或 Chudnovsky公式,一般100万位十进制精度在我的电脑上用时约1秒。另外计算pi的新世界纪录8月2日诞生了,使用桌面型电脑,用时3个月,计算到5万亿位。 这里有一份使用GMP库和Chudnovsky公式的计算pi的c程序: ftp://ftp.gmplib.org/pub/misc/gmp-chudnovsky.c
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-17 21:04:11 | 显示全部楼层
事实上sin(x)的计算并不慢,优化的关键在于不要计算不必要的精度,从乘除加法开始优化 我从来没有搜到过相类似的算法, 将它称为abiao算法不算过分吧, 在没有计算机的年代,幂级数刚发现的时候,sin(x)就可以计算了,然后用手工计算三十几位精度要不了几天时间吧 这个算法的优雅之处在于简单(原理简单,易于理解),和不算差的性能,比起Martin公式,Ramanujan公式和其他乌七八糟的公式比起来简单得多了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-17 23:13:31 | 显示全部楼层
我认为这些公式并不是乌七八糟的,而是十分伟大的。 典型的BBP公式也十分简单(原理简单),其证明不过数行,但利用其泛化形式不仅仅可以求出pi, 甚至可以求出很多种常数,如Apéry's constant(ζ(3)),ln2,√2等的非常高精度的近似值。另外可以将这种公式引出的算法并行化。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-18 08:49:25 | 显示全部楼层
算法是否可并行以后会越来越显得举足轻重。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-18 12:20:57 | 显示全部楼层
11# air 兄弟,这个程序好像gmp官网上有的,而且链接地址应该是长期有效的。 ftp://ftp.gmplib.org/pub/misc/gmp-chudnovsky.c 我们最好还是给出链接,或者以附件的形式,否则浏览本页面时 滑动块太薄,眼神不好使的拖不动呀
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-18 14:24:41 | 显示全部楼层
为防止发广告灌水等行为,本论坛对新注册用户前三贴限制发链接。 我想 air 可能是因为上述缘故,现在应该可以发带链接的帖子了。 对于简短的引用,可以考虑直接引用; 内容多的,建议以附件形式给出; 内容可能常被更新的,请给出链接。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-18 19:46:34 | 显示全部楼层
13# air 呵呵,我有点狂妄了,不过我是从来没听说过这个算法,并且也很简洁
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-18 19:52:04 | 显示全部楼层
14# gxqcn sin(x)是可以并行计算的,我现在就是双线程计算 sin x = x-x^3/3!+x^5/5!-...(-1)k-1*x2k-1/(2k-1)!+... (-∞
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-19 12:26:22 | 显示全部楼层
楼主能否回答我在10#提出的问题, 当x接近Pi时,如何使用有效的方法计算sin(x),直接使用级数展开时,收敛速度很慢。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-19 12:42:49 | 显示全部楼层
19# liangbch 可以在Pi处展开级数
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-22 00:53 , Processed in 0.028206 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表