写在前面

本文主要用于记录我是怎么被这个有趣的问题牵扯精力的,不写篇文章对不起自己推导公式的时间,这就是沉没成本,要后悔大家一起后悔嘛。本文的问题描述、来源分析、解法推导和相关问题都是个人整理的,但解法主要参考了知乎和论文。我是物联网工程专业本科生,数学捉襟见肘,难免有所疏漏,但尽量把过程表达明白。

作者去做毕设了,留好坑位,寒假接着更。

来源描述

在2019年1月13日,YouTube上的著名频道3Blue1Brown发布了一个有趣的数学视频:YouTube:The most unexpected answer to a counting puzzle。当然,由于3Blue1Brown在国内已经有了B站官方账号,你也可以在B站上吃瓜:一个计数谜题的意外答案。

这个问题的描述如下:如图,在完全光滑的无限长平面上,有一个质量为MMM的滑块AAA以垂直于墙面的速度v0v_0v0​向墙运动,AAA和墙之间的连线上停着另一个质量为mmm的滑块BBB。假设系统所有碰撞均为完全弹性碰撞,且滑块可以看成质点。


设M=nmM=nmM=nm,则滑块BBB在墙面与AAA之间发生碰撞的总次数CCC满足:
lim⁡n→∞C=nπ\lim\limits_{n \to \infty }{C}=\sqrt{n} \pin→∞lim​C=n​π
“数学和物理有时会显现出令人惊讶的默契”,从离散的物理碰撞能够推导出一个无限不循环的数学常量,这就是3Blue1Brown所说的Unexpected,冥冥之间蕴含着宇宙的某种设计。

Gregory Galperin于1990s最早发现了这个结果,并于2003在论文Playing pool with π (the number π from a billiard point of view中公布这个问题,B站中给出的论文在墙内是打不开的(小声BB)。然后百度上可以搜索到的中国近年来最早提到这个问题的就是知乎2016年3月的帖子了:如何求解这个小球碰撞次数与圆周率关系的趣味问题? - 知乎,然后2017年3Blue1Brown入驻B站,并于今年在YouTube和B站上同步发布了相关视频,才导致这个问题成为一个网红问题,从而被各路新闻、公众号、博客和视频平台转发报道。

解决方法

解法一

主要思路:能量守恒定律 >> 变换坐标系 >> 三角换元 >> 几何观察 >> 极限

设v1v_1v1​、v2v_2v2​分别为滑块AAA、BBB在一次碰撞后的瞬时速度,由能量守恒定律可知:
12Mv12+12mv22=12Mv02\frac{1}{2}Mv_1^{2}+\frac{1}{2}mv_2^{2}=\frac{1}{2}Mv_0^{2}21​Mv12​+21​mv22​=21​Mv02​
将M=nmM=nmM=nm代入,化简得到v1v_1v1​,v2v_2v2​坐标系下的椭圆方程:
v12+(v2n)2=v02v_1^{2}+(\frac{v_2}{\sqrt n})^{2}=v_0^{2}v12​+(n​v2​​)2=v02​
取v2′=v2nv_2^{'}=\frac{v_2}{\sqrt n}v2′​=n​v2​​,得到v1v_1v1​,v2′v_2^{'}v2′​坐标系下的圆的方程:
v12+v2′2=v02v_1^{2}+v_2^{'2}=v_0^{2}v12​+v2′2​=v02​
于是我们可以使用v1=v0cosθv_1=v_0cos\thetav1​=v0​cosθ,v2′=v0sinθv_2^{'}=v_0sin\thetav2′​=v0​sinθ进行三角换元。假设每次碰撞前,两滑块相向运动,且远离墙壁的方向为速度的正方向,则根据动量守恒定律,我们可以得到方程:
Mv1a−mv2a=Mv1b+mv2bMv_{1a}-mv_{2a}=Mv_{1b}+mv_{2b}Mv1a​−mv2a​=Mv1b​+mv2b​
vav_ava​表示本次两物块碰撞前一瞬间物块的速度,vbv_bvb​表示的下次两物块碰撞前一瞬间物块的速度。将M=nmM=nmM=nm代入,化简得到:
nv1a−v2a=nv1b+v2bnv_{1a}-v_{2a}=nv_{1b}+v_{2b}nv1a​−v2a​=nv1b​+v2b​
将三角换元公式代入可以得到:
ncosb−nsinb=ncosa+nsinancosb-\sqrt n sinb=ncosa+\sqrt n sinancosb−n​sinb=ncosa+n​sina
补充一下和差化积公式:

  1. sinα+sinβ=2sin[(α+β)/2]cos[(α−β)/2]sinα+sinβ=2sin[(α+β)/2]cos[(α-β)/2]sinα+sinβ=2sin[(α+β)/2]cos[(α−β)/2]
  2. sinα−sinβ=2cos[(α+β)/2]sin[(α−β)/2]sinα-sinβ=2cos[(α+β)/2]sin[(α-β)/2]sinα−sinβ=2cos[(α+β)/2]sin[(α−β)/2]
  3. cosα+cosβ=2cos[(α+β)/2]cos[(α−β)/2]cosα+cosβ=2cos[(α+β)/2]cos[(α-β)/2]cosα+cosβ=2cos[(α+β)/2]cos[(α−β)/2]
  4. cosβ−cosα=2sin[(α+β)/2]sin[(α−β)/2]cosβ-cosα=2sin[(α+β)/2]sin[(α-β)/2]cosβ−cosα=2sin[(α+β)/2]sin[(α−β)/2]

利用公式1、4我们可以化简得到:
cot((a−b)/2)=ncot((a-b)/2)=\sqrt ncot((a−b)/2)=n​
其中bbb、aaa分别表示两次碰撞前一瞬间的三角函数参数,即v1v_1v1​,v2′v_2^{'}v2′​坐标系下的圆心角。那么:
a−b=actan(1/n)a-b=actan(1/\sqrt n)a−b=actan(1/n​)
由上式可以看出每次碰撞导致的圆心角的增量是一个常数值(正值)。而初始情况下v1=−v0v_1=-v_0v1​=−v0​,v2′=v2n=0v_2^{'}=\frac{v_2}{\sqrt n}=0v2′​=n​v2​​=0,在坐标系里即为圆与v1v_1v1​坐标轴负半轴的交点(我们假设远离墙壁的方向为速度正方向)。而每次碰撞只是该点沿着圆的轨迹逆时针转动一个固定的角度。
挖坑

解法二

挖坑

解法三

占位待续(第三种解法的复矩阵正交变换触及了我的数学盲区)

解法四

挖坑

四种解法间的等价性

挖坑

其他相关

两个猜想

挖坑

另一个Counting Pi

挖坑

另一个Playing Pool

如果百度一下Playing pool还会查到这篇文章:Playing Pool with |ψ⟩: from Bouncing Billiards to Quantum Search。估计作者Adam R. BrownGG的小迷弟,模仿原论文的标题,将π\piπ改成了态矢量∣ψ⟩|ψ⟩∣ψ⟩,声称找到了弹性碰撞问题和Grover量子搜索算法之间的联系。想要读懂这篇文章需要对量子力学和量子计算机有一定了解,它触及到了本人的物理、算法和数学等一系列知识的盲区,希望经过以后的学习能够读懂它。

大佬Jorge S. Diaz

在Google上查找弹性碰撞问题的前世今生的时候,偶然邂逅了JSD的文章:Digits of π from colliding blocks。这是一篇写的十分漂亮的学院派文章,从理论分析到Python的实验都做的很详尽,文章的排版也清晰简洁(作为一个站长我当然很关心排版),于是访问了一下他的首页和作者页,他的Bio如下:

I am a data scientist at BASF. I received a Ph.D. in Theoretical Physics from Indiana University Bloomington with minors in nuclear physics and high-energy physics. After two years working as a postdoctoral researcher at the Karlsruhe Institute of Technology in Germany, I made the transition to industry. Now I enjoy a daily dose of Python coding, mining text data, machine learning, and playing with maps. My fascination for physics is now streamed via Twitter and a blog for the general public.

可以看到他是一个德国人,获得了印第安纳大学伯明顿分校的理论物理博士学位,现在于巴斯夫公司(德国的化工企业)做一名数据科学家,最近开始从物理学转向了ML,喜欢Python编程。他的网站创建与2018年1月,只有两篇文章,另一篇是Tests of Lorentz invariance using neutrino oscillations,翻译过来是用中微子振荡检验洛伦兹不变性,看起来也十分硬核。我关注了他的GitHub,也许将来可以交个朋友。

3Blue1Brown名称由来

我从一开始就很好奇这个奇怪的名字,为啥叫三蓝一棕?在百度上没能找到答案,于是去Google一下,3Blue1Brown官方网站上介绍了频道的作者:Grant Sanderson。他对自己的介绍如下图:

我翻译一下:“我叫Grant Sanderson。我在斯坦福大学学习数学时,一直受到计算机科学的诱惑。有一段时间,我的工作经历告诉我应该去做软件工程/数据科学方向。但最终,我对数学的热情占领高地,代价是牺牲了小情人计算机。可汗学院的人才发掘计划让我很幸运地开始了一条不太传统的数学推广道路。我在2015/2016年担任多元微积分研究员,为他们制作视频和撰写文章。之后,我开始把全部精力投入在3blue1brown上。”可见作者是一个斯坦福数学系毕业的学生,这里并没有说明名字的由来,但从照片上看来我猜想他是美国白人,混了一些北欧血统,那么他很大概率是蓝眼睛。从维基百科上我找到了正解:

The channel name and logo reference the color of Grant’s right eye, which has blue-brown sectoral heterochromia. It also symbolizes the channel’s visual approach to math.

Sanderson的右眼有区域性虹膜异色,所以3Blue1Brown的意思就是他虹膜的四分之三是蓝色,四分之一是棕色。这让我不禁联想到I型起源那部悲伤而美妙的爱情电影。他本人也说有些粉丝为了顺嘴,也管这个频道叫3b1b:3b1b for those who prefer less of a tongue-twister。而这个频道的标志就是他的右眼虹膜,也象征着这个频道对数学的一种理解方式,究竟是怎样的理解方式,他没有具体说,但根据他的其他介绍可以略知一二:

Loosely speaking, I think of the first category as motivating math by its usefulness, and the second as motivating math as an art form. But of course, the line dividing these two is easily blurred.

“泛泛而言,我认为驱动数学发展的第一类动力是实用性,排在第二的应该是数学的艺术形态。当然,这两者的界限是很模糊的。”我们可以认为Blue代表的是传统意义的实用性,而Brown代表的是另一个视角的艺术美。

Problems in math which many people may not have heard of, and which seem really hard at first, but where some shift in perspective makes it both doable and beautiful.

“很多人们从没听说过的数学问题,乍一看很难,但变换一下思维的角度,它可以变得既有可行性又有美感。”这可能就是3Blue1Brown这个频道所追求的主旨,将数学变得深入浅出,尽力去展现它的美感。可能Blue是常规意义的视角,Brown就代表那种既可行又漂亮的视角吧。Sanderson是如何做到这一点的呢,请往下看。

3Blue1Brown视频引擎

维基百科上说道,Sanderson在2015年开始了一个个人项目,在Showmakers(某个播客节目;播客,podcast,是一种收听类的节目) 中他表示想要练习编程技能,决定制作一个基于Python的图形库。这个图形库最终变成了著名的开源视频引擎Manim(Mathematical animations的缩写)。3Blue1Brown因此拥有了吸引人的立体动画,使人们尽情体验数学之美。

Manim的仓库地址:Manim。知乎上对这个视频框架的介绍已经十分详细了,在我深入研究这个框架之前不打算做搬运工:3Blue1Brown 的视频是怎么制作的? - 李狗嗨的回答 - 知乎。这个频道对与线性代数、微积分、神经网络、黎曼猜想、傅里叶变换和四元数都有很好的讲解,尤其是线性代数,口碑很好,码上留着慢慢看。

弹性碰撞次数与圆周率的关系 - 3Blue1Brown相关推荐

  1. python弹性碰撞次数圆周率_高中物理竞赛典型例题精讲——盒内滑块弹性碰撞次数...

    04-07-08_盒内滑块弹性碰撞次数 本期高中物理竞赛试题,我们共同来研究一下弹性碰撞过程与摩擦阻力作用下的运动相结合的题目的解题思路和方法,从这里也就能够明确,本期题目的主要考查重点在两个位置,其 ...

  2. python弹性碰撞次数圆周率_高中物理竞赛典型例题精讲——锲形槽内部弹性碰撞次数...

    04-07-17_锲形槽内部弹性碰撞次数 本期高中物理竞赛试题,我们共同来研究一下一个光学常常见到的题目,由于光学问题中的光的反射问题,与物体的与固定斜面的间的弹性碰撞过程类似,因此这个光学题目经过简 ...

  3. 素数模同余式次数与其解数的关系

    索引 前言 多项式带余除法 定理1:设P(x)=anxn+an−1xn−1+⋯+a1x+a0M(x)=bmxm+bm−1xm−1+⋯+b1x+b0,bm≠0\begin{aligned} & ...

  4. python弹性碰撞次数圆周率_碰撞出来的圆周率(一)

    想象地面上有一堵墙,墙的右边某处有一物体A,它的右边某处又有一物体B.假设地面无限长无限光滑,AB两物体都可视为质点,AB之间,以及它们和墙之间都作完全弹性碰撞. 想象地面上有一堵墙,墙的右边某处有一 ...

  5. 【用matplotlib,wordcloud和pyecharts分析三国的分词,词频,词性,小说人物出场次数排序小说人物关系】

    前言 为了顺利完成作业,经过几天的网上查阅完成了[根据第1部分自然语言处理教学内容,请选择一本你喜欢的小说,利用上课讲的但不限于授课内容,对该小说进行分析.比如分析该小说的分词,词频,词性,小说人物出 ...

  6. 迭代次数和熵之间关系的一点联想

    ( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 做一个网络来分类A和B,网络输入只有3个节点,每个训练集只有3张图片.让B全为0,让A的3张图片中只有3个1,排列组合A的所有 ...

  7. 神经网络迭代次数的一个近似关系

    (A,B)---m*n*k---(1,0)(0,1) 移位距离和假设 用神经网络分类A和B,把参与分类的A和B中的数字看作是组成A和B的粒子,分类的过程就是让A和B中的粒子互相交换位置,寻找最短移位路 ...

  8. 详细解释:Epoch、batch_size批处理大小、迭代次数之间的关系

    Epoch.batch_size批处理大小.迭代次数之间的关系 问题:当遇到参数Epoch时,我们应该将其具体设置多少呢?或者应该迭代多少次呢? 举例说明 问题:当遇到参数Epoch时,我们应该将其具 ...

  9. 网页开发 与数据联动的图_零基础学习数据可视化pyecharts人物关系图开发

    Pyecharts人物关系图开发 1. Pyecharts版本说明 Pyecharts的版本最新版本为1.7.0版本,此版本跟0.5版本的使用方法不一样了.很多参数方法配置不一样了.Import的内容 ...

  10. 输入对5层网络迭代次数的影响

    制作一个5层网络和一个3层网络 图中左边的5层网络很显然可以看作是由两个右边的3层网络组合而成,所以左边的网络的迭代次数和右边的网络的迭代次数有什么关系? 在<测量一组5层网络的迭代次数> ...

最新文章

  1. 内容协商 (Content Negotiation)
  2. 脑机接口简史——假如这篇推送是你靠意念打开的
  3. 有效的Java –创建和销毁对象
  4. matlab中欠定方程组超定方程组_《数值天气预报》:球坐标系中的基本方程组
  5. 我的docker随笔18:阿里云docker仓库的使用
  6. Android 面试 缓存,荐【经典面试题】七大缓存经典问题...
  7. 求众数leetcode(169)+投票算法
  8. 【转】LoadRunner使用Libmemcached与Memcached通讯
  9. SitePoint播客#23:Jeff Veen的网络字体
  10. docker端口映射后连不上的问题
  11. 支付宝提示服务器有【中危漏洞】任意邮件伪造检测
  12. 伦敦时间现在几点_英国伦敦时间现在几点钟(英国时差和中国差几个小时)
  13. Android音视频点/直播模块开发
  14. 5.15 按照排序图标对目标拓展客户数进行排序 [原创Excel教程]
  15. 2013年MBA、MPA、MPAcc入学考试英语辅导教材
  16. Google Guava Striped 实现细粒度锁
  17. SLMi334兼容TLP5214 一款兼容光耦带保护功能单通道隔离IGBT栅极驱动器
  18. compareAndSet
  19. Mysql查询数据之基本和多条件查询
  20. RT-Thread I/O设备模型及驱动框架解析(一)

热门文章

  1. web编程1–用户注册之文本框应用,coon连接,存入mysql
  2. Python+Opencv检测模糊图片
  3. AirTest进行自动化测试
  4. 大数据、数据挖掘和机器学习,带了哪些业务价值?
  5. si24r1程序_SI24R1技术支持--程序 射频识别(radio frequency indentificationx) - 下载 - 搜珍网...
  6. 构建会员运营管理系统 帮助零售企业数字化转型
  7. Windows批量修改文件或文件夹名称
  8. java中常见的NullPointerException异常
  9. 数据库视图效率低下一例
  10. Python的运行加速:C究竟比python快在哪