有一个无限大的棋盘,棋盘左下角有一个大小为 n 的阶梯形区域,其中最左下角的那个格子里有一枚棋子,如左图所示。你每次可以把一枚棋子“分裂”成两枚棋子,分别放在原位置的上边一格和右边一格。你的目的是通过有限次的操作,让整个阶梯里不再有任何棋子。下图所示的是 n = 2 时的一种解法。我们的问题是:对于那些 n ,这个游戏是有解的?
有一个无限大的棋盘,棋盘左下角有一个大小为 n 的阶梯形区域,其中最左下角的那个格子里有一枚棋子,如左图所示。你每次可以把一枚棋子“分裂”成两枚棋子,分别放在原位置的上边一格和右边一格。你的目的是通过有限次的操作,让整个阶梯里不再有任何棋子。下图所示的是 n = 2 时的一种解法。我们的问题是:对于那些 n ,这个游戏是有解的?
下面是 2013 年 9 月 IBM Ponder This 的谜题。
A 和 B 在赌场玩一个游戏,他们要协同作战与庄家对抗。游戏一轮一轮地进行,每一轮的规则都是一样的:首先 A 赌 0 和 1 当中的某个数字,然后 B 再赌 0 和 1 当中的某个数字,最后庄家给出 0 和 1 当中的某个数字;如果所有的三个数字都相同,则 A 和 B 获胜,否则庄家获胜。游戏前, A 和 B 可以商量一个对策,但游戏一旦开始,除了下赌注本身之外,两人不能再有其他任何形式的交流了。
容易看出,如果 A 和 B 都随机下注,他们只有 25% 的获胜概率。然而,如果两人事先约定,在每一轮中, B 总是跟着 A 下注, A 赌什么 B 就赌什么,那么他们获胜的概率就会提高到 50% 。但是,不管采用哪种方案,在最坏情况下,两人都有可能一次也不能获胜。
有意思的事情出现了。在游戏开始前两人商量策略的时候,两人突然意识到, B 有办法偷到庄家将会在游戏中使用的 01 序列。也就是说,游戏开始后,每一轮里庄家要出什么, B 都将会知道。但是,一旦 B 拿到了这个 01 序列, B 就不能和 A 交流了。在这样的条件下,两人能做得比刚才更好吗?能!比如说,两人可以保证在最坏情况下也有至少 50% 的获胜次数: B 可以在第 1, 3, 5, 7, … 轮游戏中赌下一轮庄家将会出的那个数(这相当于暗示了 A 下一轮赌什么),两人便能保证在第 2, 4, 6, 8, … 轮游戏中获胜了。
我们的问题是:假设游戏一共有 9 轮,设计一种策略使得 A 和 B 能够保证至少 6 次胜利。
这是我最喜欢的几何谜题之一:你能否在纸上画一个钝角三角形,然后把它分割成若干个锐角三角形?令人难以置信的是,这竟然是可以办到的!继续看下去之前,大家不妨先自己想一会儿。
每次我在课堂上提出这个问题的时候,学生们总会疯狂而盲目地进行尝试。根据我的观察,绝大多数人都会先画一个不那么钝的钝角三角形(其实这本质上并不会简化我们的问题),然后作出一系列类似于图 1 的尝试,但最后都以失败告终。此时我往往会反复强调:要有方法啊,要有方法!首先,想必很多人已经注意到了,我们必须在钝角里引出一条线(如图 2 所示),这样才能把钝角给消除掉。接下来,则是很少有人意识到的一点:我们不能让这条线一直延伸到对边,否则原三角形将会被分成一个锐角三角形和一个钝角三角形(或者两个直角三角形),这并不能解决根本问题。也就是说,这条线在到达对边前就必须得分岔。最后一个关键的问题就是,分成几岔?显然,分成三岔(如图 3 所示)是不够的,因为这样只能把一个周角分成四份,它们不可能都是锐角。为了让所有的角都是锐角,我们至少要让这条线分成四岔(如图 4 所示)。最后,再把一些没有连起来的点连起来,我们就得到一个像模像样的答案了(如图 5 所示)。
如果叫我说出一个我最喜欢的数学定理,之前我可能会说 Monge 定理;不过现在,我可能会说 Marden 定理了:
设 p(z) 是一个复数域上的三次多项式, z1 、 z2 、 z3 是 p(z) 的三个根,它们在复平面上不共线。那么,在这个复平面上存在唯一的椭圆,使得它与三角形 z1z2z3 的各边都相切,并且都切于各边的中点处。并且,这个椭圆的两个焦点是 p'(z) 的两根。
读完这个结论以后,你一定会被数学之美深深地打动。这个结论出现在了 Morris Marden 于 1945 年发表的一篇论文里,因而被 Dan Kalman 称为 Marden 定理。 Marden 本人则认为,这个结论最早是由 Jörg Siebeck 在 1864 年发现并证明的。下面我们简单地来证明一下这个结论,证明过程出自 Dan Kalman 在 2008 年发表的获奖论文 An Elementary Proof of Marden’s Theorem 。
任意一个三角形的三条中线都会交于一点,这个点就叫做三角形的“重心”。任意一个三角形的三条高都会交于一点,这个点就叫做三角形的“垂心”。任意一个三角形三边的垂直平分线都会交于一点,这个点就叫做三角形的“外心”。 1765 年,大数学家 Euler 指出:任意一个三角形的重心、垂心和外心都在一条直线上,并且重心会把垂心和外心的连线分成 2 : 1 两段。这个结论虽然有很多很漂亮的证明,但作为一个非常基本的结论,它还有一种非常直观的解释方法。最近在做一个课件的时候,需要用到这种直观理解的动画演示,结果在网上找了半天也没找到,最终决定自己做了一个。
上图中,红色的点是三角形三条高的交点,也就是垂心;蓝色的点是三角形三条中线的交点,也就是重心。现在,把整个三角形绕着重心旋转 180 度,同时以重心为中心把图形缩小到原来的一半。于是,每个点都会跑到重心的正对面去,同时到重心的距离也会缩短到原来的一半。你会发现,由此得到的小三角形,三个顶点都在大三角形各边的中点处(因为它们是大三角形的顶点转过来得到的,而重心在各中线的 2 : 1 处);同时,小三角形的三条高分别与大三角形的各边垂直(因为它们是大三角形的高转了 180 度得到的)。你会发现,小三角形的垂心正好就是大三角形的外心!而小三角形的垂心就是由大三角形的垂心转过来得到的,这两个点与重心应该在一条线上,并且到重心的距离有 1 : 2 的关系。这样一来,我们就相当于证明了 Euler 线定理。