来源:MathOverflow
不得不说,确实很妙!
来源:MathOverflow
不得不说,确实很妙!
空间中有六个点,它们两两间的距离都互不相等。考虑所有以这些点为顶点构成的三角形。证明:存在某个三角形,它的最长边是另外某个三角形中的最短边。
这个结论并不是显然的。为了说明这一点,只需要注意到同样的结论对n=5的情况是不成立的。考虑平面上一个正五边形的五个顶点(微调它们的位置使得两两间的距离互不相等),容易发现任意三个点所组成的三角形,其最长边都不可能是另一个三角形的最短边。
今天下午在上语言统计分析课时,我听到了一个非常有趣的问题。考虑同时抛掷两个骰子所得到的结果——它们的和有1/36的概率得到2,有2/36的概率得到3,……,有1/36的概率得到12。现在,你能否构造两个新的骰子,使得同时抛掷两个新骰子的结果与原来相同?注意,每个骰子都有6个面,每个面都有一个正整数。这些点数可能超过6,并且可能会有重复。另外,这两个骰子也无需完全相同。
解决这个问题并不难。首先注意到,为了使得两个骰子的点数之和能够得达到2,每个骰子上都得有一个“1”(并且仅有一个“1”)才行。接下来考虑,为了得到两种和为3点的情况,我们还得在两个骰子上放置两个“2”:我们可以在每个骰子上各放一个“2”,不过这样就与原来的骰子没啥区别了;我们也可以来点不一样的,把两个“2”都放在一个骰子上。现在,其中一个骰子上只放了一个“1”,另外一个骰子已经填了一个“1”和两个“2”,这可以保证它们能产生出一个2点和两个3点。再下一步,我们将考虑如何产生出三个4点。为此,我们需要把三个“3”分配到两个骰子中。这样推下去虽然越来越麻烦,但最终你还是能得到一个合法解:一个骰子上写有1、2、2、3、3、4,另一个骰子上写有1、3、4、5、6、8。不过,这个问题有一个异常巧妙的解法,它能够把两个骰子的点数进行整体求解。你能想到这个做法吗?
考虑直线x+y=n,其中n是一个素数。这条直线将恰好通过第一象限里的n-1个格点(如上图,图中所示的是n=11的情况)。将这n-1个点分别和原点相连,于是得到了n-2个灰色的三角形。仔细数数每个三角形内部的格点数,你会发现一个惊人的事实:每个三角形内部所含的格点数都是一样多。这是为什么呢?
大家在玩俄罗斯方块的时候有没有想过这样一个问题:如果玩家足够牛B的话,是不是永远也不可能玩死?换句话说,假设你是万恶的游戏机,你打算害死你面前的玩家;你知道任意时刻游戏的状态,并可以有针对性地给出一些明显不合适的方块,尽量迫使玩家面对最坏情况。那么,你有没有一种算法能保证害死玩家,或者玩家无论如何都存在一种必胜策略呢?注意,俄罗斯方块的游戏区域是一个宽为10,高为20的矩形,并且玩家可以预先看到下一个给出的方块是什么。在设计策略时,你必需考虑到这一点。
相信很多人有过这样的经历:玩俄罗斯方块时一开局就给你一个“S”型方块,让完美主义者感到异常别扭;结果,第二个方块还是这个“S”,第三个方块依旧是“S”,相当令人崩溃。于是,我们开始猜测,如果游戏机给你无穷个“S”形方块,玩家是不是就没有解了?答案是否定的。如图1,从第10步开始,整个局面产生一个循环;只要机器给的一直都是“S”方块,玩家可以不断重复这几个步骤,保证永远也死不了。
不过,这个循环是在游戏场地清空了的情况下才产生的。有人会进一步想了,要是在玩着玩着,看着你局势不好时突然给你无穷多个“S”方块呢?事实上,此时局面的循环依然可能存在,如图2。在第5个“S”形方块落地后,循环再次产生。