Maryam Mirzakhani 在 2014 年的报告中提出了如下的问题(视频的 25 分 50 秒处):
问题: 假设平面上有一个正方形的房间,房间的四面墙壁都是光滑的反射镜子。子弹在碰到墙壁时会遵循入射角等于出射角的规律无限反射下去。房间中有一位政要和一个刺客,他们的位置是固定的,但可能是房间中任何两点。能否在房间中放置有限数量的保镖,使得这些保镖可以封锁刺客的所有射击角度,从而确保政要不被子弹击中?
根据 这篇论文 的考据,这个问题曾经在 1989 年列宁格勒的数学竞赛中出现过。最近,通过 PBS 和 math3ma 的博客 的科普推广,这个问题又引起了不少人的兴趣。我强烈建议读者在深入阅读本文之前,先观看这些视频和博客。它们的讲解通俗易懂,即便对于普通读者来说也非常友好。
Greg Egan 在 他的博客中 进一步讨论了房间是正三角形和正六边形的情况。虽然他给出的答案是正确的,但是他对正六边形情形的解释有点让人难以理解(Greg Egan 的一贯风格)。
正三角形、正方形和正六边形房间是仅有的三种可以用有限多个保镖保护目标的情形,对其它正 \(N\) 边形房间(\(N\notin\{3,4,6\}\)),有限数量的保镖是不行的。
本文是对 math3ma 和 Greg Egan 博客文章的补充,我将主要针对正六边形的情况进行详细解释。我觉得从仿射 Weyl 群的角度来看这个问题会更清晰,不过这一概念可能对大多数读者来说较为陌生。本文将假定读者已具备群的相关基础知识,并尽可能结合直观图形加以说明。如果读者希望进一步了解仿射 Weyl 群,可以参考 (Humphreys 1990, chap. 4)。
本文的代码在 Github 上。这个项目包含了一个交互式脚本,你可以在窗口中点击并拖拽鼠标来查看刺客射击的轨迹以及保镖的位置:
正方形 | 正三角形 | 正六边形 |
本文介绍我写的一个高颜值的、脱离了低级趣味的小程序:用 Python 和 POV-Ray 绘制各种三维多面体和四维多胞体,代码在 Github 上。
以下是用这个程序渲染的一些例子,其中不同颜色的顶点/边/面表示它们在对称群的作用下位于不同的轨道中,具体解释见后。
本文的想法源自 Roice Nelson 的 shadertoy 项目,我觉得他的创意很棒,就是效果有点糙,于是 动手改进了一番。乍一看,这个动画的场景很简单,其实它背后的数学并不平凡。
这个动画从三个角度了演示 Möbius 变换,这三个角度是密切相关的:
- Möbius 变换作为扩充复平面 \(\hat{\mathbb{C}}\) 到自身的全纯函数。
- Möbius 变换作为 Riemann 球面 \(S^2\) 到自身的全纯函数。
- Möbius 变换作为上半双曲空间中的等距变换。
本文只作概括性的介绍,并不展开详细的数学证明。读者可以参考下面的资料:
本文的动画应该可以帮助你更好地理解这些资料中的内容。
本文要介绍的是我写的一个有趣的 Python 小程序,一个脱离了低级趣味的程序,一个有益于广大人民了解算法的程序。代码在 Github 上。
这个程序可以用来制作各种各样的算法动画,包含但不限于:
几年前在知乎上有这么 一个问题:
问题: 有哪些 \(\mathbb{Z}[x]\) 中的多项式,它们在有理数域 \(\mathbb{Q}\) 上是不可约的,而对任意素数 \(p\),模 \(p\) 以后在 \(\mathbb{Z}_p[x]\) 上都是可约的?
当时我给了回答,后来账号注销了,答案也一并删除了。现在把我的原答案贴在这里:
当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器