作者if4 (if Chen)
标题Re: [分享] 计算π到小数点下一亿位
时间Sat Mar 15 03:03:41 2025
计算π到小数点下一亿位之我见(1)
原po很厉害,写出的程式计算π到小数点下一亿位,所花时间只需6分钟,我思索这
个问题都不止6天了XD所以我尝试将这个过程写下来,看是不是我有什麽地方漏了,
请大家一起来检视。
对程式设计师而言,要敢拍胸脯保证这π一亿位中的第6千万位是正确的,抱歉,我
无法做这保证,所以我还在研究中XD原po当然敢,因为程式是他写的XD
对程式设计师来说,要保证所求是正确的,第一、您所用演算法是正确的或可接受的
,第二、没有重大BUG。第二点大多数人很难在一开始就做这样的保证,君不见
Windows到现在还在研发中,当然它有新的功能被加入,但也无法否认更新一直在出
版,这部份确实一直有新的BUG被报告。现在对我而言我比较在意第1点。因为要保证
无错误,即使是微软也无法保证,退而求其次,当然要保证所用演算法是正确或可接
受的。这部分定义问题就很重要了。我怎麽看这问题,回到问题,π是什麽?是圆周
率...
看π的定义:圆周率为圆周长与直径的比率,它是个常数,是个实数,是个无穷位数
的一个常实数。那我要怎麽去求这个数,尤其是用电脑求出前面一忆位数。
我们先看看古代怎麽求解,一开始是 3. 然後3.1 3.14然後到近代,小数点下十亿...
百亿...为什麽古人这麽笨?不要怪他们,这个问题一开始根本是一个测量问题,怎麽
求?就真的拿尺拿线去量测,所以精度很难要求,差别是用的工具不同。但是现代人
聪明了...从分析学的角度看事情...
人变聪明了嘛,人总是要进步...我们从小学过的公式多不多?跟圆周率π有关的呢?
我记不了这麽多,脑子不好使,那就让我孤狗:含有圆周率π的数学公式有那些?
我找到维基的百科全书「含圆周率的公式列表」,先从古典几何来看:
(
https://zh.wikipedia.org/zh-tw/%E5%90%AB%E5%9C%86%E5%91%A8%E7%8E%87%E7%9A
%84%E5%85%AC%E5%BC%8F%E5%88%97%E8%A1%A8 )
( 短网址:
https://tinyurl.com/mt83dbwy )
C=2πr > π=(1/2)*(C/r) C是周长 问题点:都是测量值 再看下去...
A=πr平方 A是圆面积
V=(3/4)*πr三次方 V是球体积
这些都有测量上的问题,所以它们无法精密精准...
...下次再写吧...先去巡逻...Orz
PS:
下次要看这个问题,可能要请大家先去研读维基古典几何的下一个部份:分析
因为我发现在BBS上输入数学式子很苦手...有碍大家的眼...我就不挣扎了XD Orz
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.251.226.163 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1741979024.A.EE7.html
※ 编辑: if4 (220.129.156.70 台湾), 03/15/2025 09:53:32
1F:推 Lipraxde: 先睡觉,睡饱再从级数开始学怎麽算 pi 好吗XD? 03/15 09:31
2F:推 lc85301: 这部分我推荐看这个影片,算是 pi 脱离几何学的介绍 03/15 16:51
4F:→ if4: 谢谢<3 请问有没有中文版的?我英文不太好 Ore 03/15 19:37
5F:→ if4: Orz 03/15 19:38
6F:→ if4: 我前面是说我花了不止6天去研究这问题 那还客气了 我从小就在 03/16 00:55
7F:→ if4: 想这问题 我看过一本书 整本书就在写圆周率 3.1415926535 03/16 00:58
8F:→ if4: 小时候在猜测这到底怎麽求出来 那时我还不会写程式 稍稍长大 03/16 01:01
9F:→ if4: 了解更多 我连公式都要自己去验算 觉得电脑好厉害 03/16 01:04
10F:→ if4: 这是我研究程式设计最大的动力啊 03/16 01:07
11F:→ if4: 现代有电脑真好 然後有量子电脑 我不知道我可不可以活着用它 03/16 01:16
12F:推 lc85301: 它的字幕有中文的呀 03/16 16:06
13F:→ if4: 好 <3 我再看看,谢谢您 03/16 19:38
14F:推 suhorng: 右上角语言点中文,英文网页连结比较好贴 03/18 14:03
15F:→ suhorng: wikipedia.org/wiki/Bailey–Borwein–Plouffe_formula 03/18 14:05
17F:→ suhorng: 你看分母那个 16^k 和 2^{10n}, 适合 16 进位制的计算 03/18 14:08
18F:→ suhorng: 然後可以用不同公式计算再对答案 03/18 14:11
19F:→ if4: 其实我很怕在BBS上使用数学式子...可能需要在其他媒体使用吧? 03/19 23:43
20F:→ if4: 您说的是好方法 我想的是π在其他电脑上有执行过 可不可以引 03/19 23:48
21F:→ if4: 用别人的数据?但要怎麽引用是个大问题 Orz 03/19 23:49
22F:→ if4: 然後比较看一不一样 03/19 23:51
23F:→ if4: 我顾虑的是:公式不一样,收敛速度不会一样,精确度无法比较 03/20 04:04
24F:推 lc85301: 为什麽要在 BBS 上写数学式子… 03/20 11:15
25F:→ if4: 我知道的不多 03/20 21:52
26F:推 lc85301: 不不不,要写数学式子有很多好工具,BBS 肯定不是其中一 03/20 23:14
27F:推 lc85301: 个 03/20 23:14
28F:推 suhorng: @if4: 如 arctan 之类公式算好收敛速度後就能比精度的吧 04/06 10:44
29F:→ suhorng: 至於 BBP 之类的公式, 特点就在於符合十六进位, 不仅是 04/06 10:45
30F:→ suhorng: 收敛快, 更在於计算某个位数时不用计算前面的位数, 04/06 10:45
31F:→ suhorng: 很适合拿来检验答案 04/06 10:45