趣题:循环赛中总存在一人“可传递一次”地打败了所有人

    n个人中每两个人之间都进行过一次比赛。假设比赛不可能出现平局。证明,一定能找出这样的一个人,对于其它任何一人p,他击败了p或者击败了某个打败了p的人。

    一句话证明:赢的次数最多的那个人显然满足我们的条件。反证,假设被他打败的所有人的集合为P,万一有个人既没有输给他,也没有输给P里面的任何一人,那这个人至少赢了|P|+1次,成了获胜次数更多的人,矛盾。我故意在这里多写一句话,目的是想说明前面的空白有多短。在Ctrl+A之前,不妨试试看自己能否想到如此简单的证明。

来源:http://www.cut-the-knot.org/arithmetic/combinatorics/RoundRobinTournament.shtml

Read more…

思考的乐趣:UyHiP趣题之用最少的块移动实现逆序操作

    Michael BrandUsing your Head is Permitted是我最喜欢的谜题挑战网站,很多题目相当精彩。我已经多次翻译了那上面的谜题(点击这里看看)。不过,以往我都是静候月底释出答案,从来没有想过参与挑战。这个月的题相当诱人,只看题目描述的最后一句话我就知道这绝对是我喜欢的类型,于是我有了向本月题目发起挑战的冲动。印象中我真的是很久很久没有像这样疯狂地思考一个问题了。然后呢,我非常得意地告诉大家,哈哈~~~经过昨天一整夜的思考,我终于把它解决了!!于是赶忙写下我的解答过程,再三检查后发到了Michael Brand的邮箱。今天起床时收到了Michael Brand热情洋溢的回信,List of solvers也写上了我的名字,我很是兴奋。自我感觉这是一道非常好的题目,题目简洁有趣而有挑战性,解答本身并不难但也不太好想,很适合大家花一整天的时间仔细琢磨;因此这里也推荐给大家来挑战一下。解答不要发到下面的评论里,也不用发给我,直接发过去好了。期待过几天在List of solvers里看到大家的名字。

    在这里简单翻译一下题目。对数列的一次“块移动”是指把一段数取出来插入到数列中的另一个地方(说穿了就是一次选择剪切粘贴的操作)。例如,数列1,4,5,6,2,3,7可以通过一次块移动完成排序(把456挪到3后面)。那么,想要让一个1到n的逆序排列n, n-1, …, 3, 2, 1变为顺序排列,最少需要多少次块移动?给出你的算法,并证明这个移动数目不能再少了。

Update: 为防止进一步讨论,我把评论禁了…

是否存在只在一点连续的函数?

    有人突然问到我,有不有可能构造一个函数,它只在一个点连续,其余地方处处不连续。函数构造是一个非常诱人的问题,我非常喜欢那些具有各种不可思议的性质的函数,那些令人吃惊的特性往往违背了大多数人的直觉和常识,这些都是茶余饭后闲谈的绝佳话题。前面提到的这个问题就是一个很有趣的问题。永远不要想当然地以为只在一点连续的函数不存在,各种怪相函数可谓无奇不有。仔细考虑了一下,我想这个函数应该和Dirichlet函数有点联系吧,毕竟很多与连续性相关的函数其原型都是Dirichlet函数,比如满足“无理点处处连续、有理点处处不连续”的爆米花函数就有Dirichlet函数的影子。然后我就突然想到,我彻底火星了,而且还是超级乌龙火星——这个玩意儿我自己还在Blog上写过,只是当时我并没注意到罢了。我曾经在描述Hilbert曲线时写到:

    你知道吗,除了常函数之外还存在其它没有最小正周期的周期函数。考虑一个这样的函数:它的定义域为全体实数,当x为有理数时f(x)=1,当x为无理数时f(x)=0。显然,任何有理数都是这个函数的一个最小正周期,因为一个有理数加有理数还是有理数,而一个无理数加有理数仍然是无理数。因此,该函数的最小正周期可以任意小。如果非要画出它的图象,大致看上去就是两根直线。请问这个函数是连续函数吗?如果把这个函数改一下,当x为无理数时f(x)=0,当x为有理数时f(x)=x,那新的函数是连续函数吗?
    …………
    有了Cauchy定义,回过头来看前面的问题,我们可以推出:第一个函数在任何一点都不连续,因为当ε< 1时,δ范围内总存在至少一个点跳出了ε的范围;第二个函数只在x=0处是连续的,因为此时不管ε是多少,只需要δ比ε小一点就可以满足ε-δ定义了。

    类似地,我们可以扩展出只在两个点、只在三个点连续的函数。只需把有理点上的f(x)=x换成f(x)=(x-a)(x-b)(x-c),我们便得到一个只在a, b, c三点连续的函数。

一个与矩形剖分有关的命题(五):数学归纳法

如果一个矩形可以分割为若干个小矩形,每个小矩形都有至少一边为整数长,则原矩形同样有至少一个长度为整数的边。换句话说,用至少有一边的长度是整数的小矩形拼成一个大矩形,大矩形也有至少一条整数长的边。

    我们首先把每个小矩形都分割成单位长或单位宽的长条。这样的话,大矩形里就只有两种小矩形:宽为1的(图(2)中的蓝色矩形)和高为1的(图(2)中的红色矩形)。我们对蓝色矩形的个数施归纳。随便选择一个蓝色的矩形(例如图(2)中的阴影矩形)。增加它的高度,让它“穿过”它头顶上的红色矩形(把它正上方的红色矩形截成左右两段),直到这根竖条状矩形的顶端碰到了另一个蓝色矩形的底端。把那个矩形作为新的操作对象,继续增加其高度(并可能再次更换“当前矩形”),直到达到整个大矩形的上边界。我们用同样的方法让最初所选的阴影矩形向下“生长”到大矩形的下边界。注意到在此过程中,蓝色矩形始终保持着单位宽度,红色矩形始终保持着单位高度。整个过程结束后,红色矩形变多了,但蓝色矩形的个数不变。此时我们得到了一条上下贯穿整个大矩形的蓝色矩形链。把它们擦掉,将右半部分左移一个单位,重新拼成一个大矩形。新的大矩形高度不变,宽度减一(因此原来的整数边还是整数,非整数边仍然不是整数),并且最关键的是蓝色矩形的个数减少了。反复进行这样的操作,总有一个时候大矩形里只剩下红色的矩形(则原大矩形高度显然为整),或者某次操作后所有矩形都被去掉了(则原大矩形宽度为整)。
    借用这种方法我们还可以得到一个有点搞笑的反证法。假设大矩形的横边竖边都不是整数。每一步操作后,这两个边仍然是非整数,这表明大矩形里不可能只剩一种颜色的小矩形,于是我们可以无限制地调用上面的操作。最后的结果是:我们得到了一个用整数长或整数宽的小矩形拼接而成的一个横边竖边都小于1的大矩形!这显然是荒谬的。

参考资料:http://www.cut-the-knot.org/Curriculum/Algebra/IntRectRobinson.shtml