jthylkl 发表于 2019-1-17 12:37:32

一个低效但十分有趣的圆周率算法(python实现)

本帖最后由 jthylkl 于 2019-1-17 17:13 编辑

昨天在B站看到了一个非常有意思的视频:一个计数谜题的意外答案

讲的是在光滑的地面上,一个大方块撞向一个小方块,小方块在墙壁和大方块之间做弹性碰撞,并记录产生的碰撞次数。当大方块的质量是小方块的100的d次方倍时,所产生的碰撞次数恰好是圆周率的前d+1个有效数字。
比如:大方块是小方块100倍时,会碰撞31次;100000000倍时,碰撞31415次

这也太神奇了吧,与圆毫无关系的物理问题中竟然隐藏了一个神秘的数字:π!

虽然暂时还不知道原理是什么,但我迫不及待想编个程序验证一下了:
**** Hidden Message *****

其中用到了弹性碰撞速度计算公式


不难看出这个算法的效率很低,因为每多算一位就会增加10倍多的计算量,计算量随精确度增加呈现指数式的增长

计算5位用了20分钟……

(速度慢的原因找到了,是vscode输出拖慢了速度,调试用的print我删了,实测算5位0.35秒)

不过它仍然是一个非常棒的算法,因为它实在是太有趣了{:10_257:}

---------------------
知乎已经有解答了:一道弹性碰撞的物理题,结果为什么会出现 π ?
---------------------

海风zZ 发表于 2019-1-17 12:54:59

哈哈哈哈

量子玫瑰i 发表于 2019-1-17 16:51:09

66666

毛绒绒 发表于 2019-1-18 09:34:47

{:10_254:}{:10_257:}目瞪口呆

zjzcw1224 发表于 2019-1-18 11:47:58

看看

彩虹七号 发表于 2019-1-18 17:05:17

{:10_254:}

inodex 发表于 2019-1-18 18:07:07

6666666

Ayluc 发表于 2019-1-18 18:08:21

大佬

田螺 发表于 2019-1-18 18:39:24

很有想法

TCY 发表于 2019-1-19 09:51:57

好厉害!

九牧· 发表于 2019-1-19 09:59:14

666

zhizuntufu 发表于 2019-1-19 10:46:48

感谢楼主

屌丝恨作业多 发表于 2019-1-19 14:53:19

{:10_256:}确实是个有趣的过程。

拉格朗日呀 发表于 2019-1-19 16:44:36

朕想知道

libotaoqwe 发表于 2019-1-19 19:41:47

good!我也看了 感谢分享

赤坂龙之介 发表于 2019-1-20 04:25:35

   ohong~ {:10_256:}

Marchin 发表于 2019-1-20 09:11:04

数学的重要性{:10_279:}

ceaqw 发表于 2019-1-20 09:16:56

666

qiuyouzhi 发表于 2019-1-20 14:32:30

666

xyzhu 发表于 2019-1-20 20:37:38

动量守恒定律,学习一下
页: [1] 2 3 4
查看完整版本: 一个低效但十分有趣的圆周率算法(python实现)