Take a Little Think of Monte Carlo Simulation
说到随机数,说到蒙特卡洛模拟(Monte Carlo),就会回想起大学本科参加数学建模比赛的那段时光。我记得第一次看到蒙特卡洛模拟是在 Giordano 写的《数学建模》(A First Course in Mathematical Modeling) 书中,于是后来每次参加数学建模竞赛都会尝试使用计算机仿真现实世界中的过程,有时候结果很好,有时候却不尽如人意。
我记得之前看到有观点认为,这种使用计算机仿真模拟的方法不是真正的数学。在一定程度上我同意这种说法。机器的一个局限性就是它无法理解无限,无法像人类一样理解无穷大和无穷小,它只能在有限精度下进行一些计算。而计算虽然能够反映一些本质,但在大量计算的过程中很可能就淹没了或者根本无法说明数学所追求的真理。例如,在目前计算机所能运算的最大范围内都可以验证黎曼假设的正确性,但是我们也不能宣布黎曼假设是对的,人们总会问,那在更远的地方呢?
从这种角度看,又不由得感叹欧几里得对于命题“素数有无穷多个”证明的巧妙。
假设素数有有限多个,最大的素数为 $N$,即不存在一个比 $N$ 大的素数。
由于所有的整数都可以由素数相乘得到,于是可以构造一个整数:$L=(2\times3\times5\times\cdots\times N)+1$。显然,整数 $L$ 不可以被 $2,3,5,\cdots,N$ 中的任意一个数整除。因此 $L$ 只可能是两种情况:
(1)数 $L$ 就是一个素数;
(2)数 $L$ 最小的真因子 $M$ 大于 $N$ ,而真因子 $M$ 是一个素数。
无论是那种情况,都表明:从一个素数 $N$ 开始,我们都可以得到一个比 $N$ 大的素数。这和“不存在比 $N$ 大的素数”的假设矛盾,因此原假设错误。
QED
另一方面,计算机所能产生的随机数都是伪随机数,这会对模拟的结果造成什么不良影响?我们如何识别出这样的风险?如何证明这样的影响在我们所面临的问题中可以放心忽视?
我无力回答上面两个疑问,只是仍然觉得蒙特卡洛模拟很迷人,觉得它让我有机会探寻其他可能的世界,能够使看似随机的过程展现出一些模式,能够让塔勒布在《随机漫步的傻瓜》中所书写的智慧以数学的方式呈现,能够展现出非决定论的深刻思想和包容性,能够帮助我们在动力学、量子力学、混沌系统、分形学、博弈论中走得更远,最终帮助我们理解现代数学、现代物理和现代哲学。