(文/雷特?阿兰)你觉得pi够酷吗?我一定是患了相思病,无法停止对pi的想念。之前分析pi的最佳表示时有两个计算问题。在Python程序中只使用pi小数点后的16位数字,这足够了吗?当然不。计算pi时永远没有完美的数值。另一个问题是在除法计算中也是用16位小数。所以,我们如何把这些数字放大呢?我知道很多方法,现在给大家介绍其中一种。 v7 ?6 E$ I' |6 }, J+ a
向Python十进制模块问好吧。我本来尝试把所有步骤列成表,但是问题却变得非常复杂。为什么要把简单的事情复杂化呢?基本上,10进制模块会帮助你定义计算程序中的数值位数。! r6 E8 ?% }, e
通过新程序发现我得到了与之前相同的分数表示。计算出的最佳值是355/113。它小数点后第七位和pi不同。我还留有很多余地,远没有接近Python常规数字表示方法的极限。
0 j2 Q7 g# h; G7 r! T s4 w接下来是超大数计算时间。程序一直进行,我也不确定能否得到更好的结果。直到计算52163/16604时我才找到比355/113更合适的分数。它也只比355/113略好而已。我写出了两个分数的前几位小数结果。
. y; U( R2 }4 q; Z. @2 t
http://guokr.com/gkimage/61/wa/hs/61wahs.png
两者非常接近。奇怪的是为什么两个数之间有巨大的空白。你可以把它叫做pi空白。也许这个空白中生活着一只pi怪兽,把所有好的pi分数表示都吃掉了。
; m1 ?' ?* @+ r, n) {# n" X" _- q如果继续寻找更好的pi值,会发现很多。这是其中的一些:/ G/ W4 l! S+ w: t
52163/1660452518/1671752873/1683053228/1694353583/1705653938/17169我找到的最佳分数是312689 / 99532。
; U- g% ?( F1 d另一件奇怪的事是G(重力加速度)的平方根与pi很接近(单位是N/kg)。
/ i2 t2 Z7 Q t, E$ \
http://guokr.com/gkimage/8f/3s/94/8f3s94.png
关于e(欧拉数)接下来,e站在了聚光灯下,它和pi一样酷,但是却得不到关注。我个人认为是名字惹得祸。你不能指望人们明白你说的“e”就是那个欧拉数。
N4 z# A1 j) U5 n; d7 t既然e也是无理数,那么它的最佳分数表示是什么呢?实际上,我只需把程序里pi的值换成e再运行一次就行了。
0 x5 o% b8 U- o$ Q8 Oe的最佳分数表示是566827 / 208524(我运行到了分子+分母=100000)。 F& w1 L, P+ S: ]8 k
我为什么这么做(除了对pi的痴迷)?为什么不搜索文献,找到前人的成果呢?那么,为什么人们要制造自己的独木舟呢?当然,你不花时间就可以买到更好的。但得到最好的独木舟并不是问题的关键,最重要的是过程。我跑步的道理也是一样。为什么不开车却要跑步呢?因为这是人类的本能,我想做一个真正的人类。
6 ?- }5 c% ~0 g3 y& F原文看这里& h, S% t0 b8 ]- J. c+ j/ X. b
科技名博微博6 b3 V8 W1 T7 {0 l. @
博主介绍:Rhett Allain是Southeastern Louisiana University物理系的副教授,他经常在自己的工作中自得其乐,非常享受这个讲授的过程。博客中亦是如此,Rhett常会用诙谐的例子来说明一个大家关心的物理问题,或是用物理解释一个大家感兴趣的知识点。无论神马状况,他的博客都欢乐无比。南通0 |