本文介绍我写的一个高颜值的、脱离了低级趣味的小程序:用 Python 和 POV-Ray 绘制各种三维多面体和四维多胞体,代码在 Github 上。
以下是用这个程序渲染的一些例子,其中不同颜色的顶点/边/面表示它们在对称群的作用下位于不同的轨道中,具体解释见后。
本文的想法源自 Roice Nelson 的 shadertoy 项目,我觉得他的创意很棒,就是效果有点糙,于是 动手改进了一番。乍一看,这个动画的场景很简单,其实它背后的数学并不平凡。
这个动画从三个角度了演示 Möbius 变换,这三个角度是密切相关的:
- Möbius 变换作为扩充复平面 \(\hat{\mathbb{C}}\) 到自身的全纯函数。
- Möbius 变换作为 Riemann 球面 \(S^2\) 到自身的全纯函数。
- Möbius 变换作为上半双曲空间中的等距变换。
本文只作概括性的介绍,并不展开详细的数学证明。读者可以参考下面的资料:
本文的动画应该可以帮助你更好地理解这些资料中的内容。
本文要介绍的是我写的一个有趣的 Python 小程序,一个脱离了低级趣味的程序,一个有益于广大人民了解算法的程序。代码在 Github 上。
这个程序可以用来制作各种各样的算法动画,包含但不限于:
这是一个关于二维随机游动的小系列,整理自我研究生时的读书笔记,每篇文章会从一个有趣直观的问题出发,介绍随机游动理论中的一个相关知识。这些问题是我精心挑选的,总体上都比较基础,并不涉及多么复杂的知识。但是请你也不要期待很快就可以看完问题的解答,因为它们不是那种用个什么巧办法三两下就能搞定的急转弯!
问题: 假设某醉汉以太阳系的中心为原点出发,在一个固定的平面内,以恒为 1 米的步长作随机行走。每次醉汉等概率地在东、南、西、北四个方向中任选一个,然后向此方向移动 1 米的距离。如果某个时刻醉汉回到了原点,或者离开了太阳系则过程结束。
现在有 A, B 两个旁观者打赌哪一种情形先发生,A 认为醉汉会先回到原点,B 认为醉汉会先离开太阳系。请问 A 和 B 获胜的概率分别是多少?
作为参考,太阳系半径约为 45 亿千米,看作一个中心在原点的圆形区域。
今天我要介绍一个 Markov 链采样中的精彩算法,叫做 coupling from the past (CFTP)。这个算法看似简单,实则充满玄机。我相信你可以在五分钟内理解算法的步骤,然后再花五分钟左右看懂算法的证明,但是我打赌你需要几个星期甚至更久的时间来细细回味其中奥妙。
为了引出算法,我们从一个计数问题开始:
问题: 下图是一个边长分别为 \(a,b,c\) 的平行六边形,其中 \(a,b,c\) 都是正整数,内角均为 120 度:
请问:用边长为 1 的菱形密铺它,有多少种不同的方法?
当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器