接下来,我们用图论方法来证明:一个由小矩形拼接而成的大矩形,若每个小矩形都有至少一条整数长的边,则大矩形也有至少一条整数长的边。考虑图中每个矩形的每个顶点,把它们作为图G的顶点集(相邻矩形重合的顶点并作一个点);对于每一个小矩形,把它整数边方向的两对顶点分别用一条边连接起来(相邻矩形公共边上的重边不合并)。如果哪个小矩形四条边都是整数,无妨随意把它当作横向整数边的或者纵向整数边的,连接任一种方向上的边。这样的话,每个矩形恰好产生两条边。注意这个图的一些很显然的性质:度为1的点只有4个(大矩形的四个角),其余的顶点的度都是偶数(只能是2或者4)。下面,我们把这个矩形放在平面坐标系上,大矩形的左下角对齐原点(0,0)。从原点开始沿着图G的边走(每条边最多走一次,不走走过的边),显然走到的每个点都满足这个性质:它的两个坐标均为整数。但我们的出发点是一个度为1的点,在走到另一个度为1的点之前,我们遇到的所有顶点的度都是偶数。因此只要没走到另一个度为1的点,我们就不可能走死。但是,图G总的边数有限,总有一个时候我们将不能再走。因此,这次旅程的终点必然落在另一个度为1的点上。这个终点是大矩形的另一个角,它的两个坐标值均为整数。命题得证。
证明
一个与矩形剖分有关的命题(一):巧妙的初等证明
今天才听说了这样一个有趣的命题:如果一个矩形可以分割为若干个小矩形,每个小矩形都有至少一边为整数长,则原矩形同样有至少一个长度为整数的边。换句话说,用至少有一边的长度是整数的小矩形拼成一个大矩形,大矩形也有至少一条整数长的边。这个命题看似简单但却很难证明,更准确地说应该是很难想到证明方法。而有趣就有趣在,这个命题的证明方法出奇的多,从图论方法到数论方法,每个证明都相当巧妙。
我们所要介绍的第一个证明是我觉得最巧妙的证明方法。证明的关键在于下面这个引理:像国际象棋棋盘一样对整个平面黑白染色,那么与两坐标轴平行放置且至少一边长为偶数的矩形一定覆盖了相同面积的黑色区域和白色区域。原因很简单,看上图,该矩形中的每一个(长度为偶数个单位的)横条显然都覆盖了相同面积的黑白两色区域。
趣题:不用除法,如何求n个数的最小公倍数
下面给出一种算法,该算法只需要使用加法运算和比较运算就可以求出n个数的最小公倍数:每一次操作都把当前最小的那个数加上它的初始值,直到所有数都相等为止。下面这个列表显示了用这个算法寻找30, 12, 18三个数的最小公倍数的全过程。初始时12是三个数中的最小数,于是该数加上12;接下来18成了最小的数,于是该数加上18变成了36;此时第二个数24又变成了最小数,于是再加上其对应的初始值12;以此类推直到三个数都变成相同的数180为止,这个180就是30, 12, 18的最小公倍数。
30 12 18
30 24 18
30 24 36
30 36 36
60 36 36
60 48 36
60 48 54
60 60 54
60 60 72
90 60 72
90 72 72
90 84 72
90 84 90
90 96 90
120 96 90
120 96 108
120 108 108
120 120 108
120 120 126
150 120 126
150 132 126
150 132 144
150 144 144
150 156 144
150 156 162
180 156 162
180 168 162
180 168 180
180 180 180
这个算法为什么是正确的呢?它有什么实际用途呢?
经典证明:pi^2是无理数
Proofs from THE BOOK的第六章相当精彩,这一章循序渐进地介绍了多个无理性证明。先证明e是无理数,证明方法和高数课本上的基本相同;试图用类似的办法证明e^2也是无理数时,这一章的内容开始牛B了起来,一些巧妙的变换就让原来的办法继续适用于e^2的证明;加上一些更有趣的技巧,我们还能继续证明e^4也是无理数;当证明对除0外的所有有理数r,e^r都是无理数时,全章达到了高潮。
这一章还提到了pi^2是无理数的证明方法。这个证明建立在Ivan Niven于1947年提出的“pi是无理数”的经典证明的基础上:仅仅是在原证明过程中加了一些微妙的变化就得到了pi^2也是无理数的结论。注意到,“pi^2是无理数”是一个比“pi是无理数”更强的结论。由于有理数的平方还是有理数,因此证到了pi^2是无理数也就说明了pi必然是无理数;但反过来却不行,因为无理数的平方不一定也是无理数,比如根号2的平方就不是无理数。
证明过程用到了一个函数,其中n是一个任取的大于等于1的常数。可以想像,这个函数的分子部分展开后是一个关于x的整系数多项式,最低次数为n,最高次数为2n。我们将用到这个函数的两个性质:首先,当0<x<1时,显然有0 < f(x) < 1/n!;其次,函数f及其任意阶导数在x=0和x=1处都是整数。为了证明后一个结论,首先注意到当x=0时,不管是多少阶的导数,除了常数项以外其余项都是0;常数项只可能在n<=k<=2n时出现(k表示k阶导数),但此时它等于一个整系数乘以k!/n!,显然也是个整数。另外,由于f(x)=f(1-x),根据复合函数的微分法我们立即得到
对任意x都成立,当然也就有
。
趣题:不断将各数替换为右侧比其小的数的个数,数列终将不再变化
下面这个问题出自The American Mathematical Monthly (Vol.75, No.3.(Mar.,1968), pp.299-301):
给定一个有限长的非负整数序列。一次操作是指把数列中的每个数替换为它右边比它小的数的个数。对该数列不断进行这个操作。证明总有一个时刻该数列将不再发生改变(即此时每个数都恰好等于它右边比它小的数的个数)。
下面是一个实际的例子。这个数列在第四次操作之后进入循环,不再发生改变。
5, 44, 19, 6, 49, 1, 27, 19, 50, 20
1, 6, 2, 1, 4, 0, 2, 0, 1, 0
3, 8, 5, 3, 5, 0, 3, 0, 1, 0
4, 8, 6, 4, 5, 0, 3, 0, 1, 0
5, 8, 7, 5, 5, 0, 3, 0, 1, 0
5, 8, 7, 5, 5, 0, 3, 0, 1, 0
………………..