1.[05]如果要对所有非负整数n=0,1,2,...而不是对n=1,2,3,...证明某个命题P(n),请说明应如何修改数学归纳法证明思路。
解:(a)证明P(0). (b)证明对于所有n0,P(0),...,P(n)蕴含P(n+1)。
2.[15]下面的定理证明必定有错。错在哪里?
定理. 令a为任意整数。对于所有正整数n,有。
证明.如果n=1,那么。于是,按照归纳法,假设定理对1,2,...,n为真,我们有
.
所以定理对n+1也为真。
解:对于n=2,定理并未证明。在证明的第二部分,取n=1,可见式中假定。如果这个条件满足(即a=1),那么定理确实成立。
3.[18]下面定理的归纳法证明表面上是正确的,但是由于某种原因,当n=6时,等式左端给出,而右端给出。你能找出错误吗?
定理.
证明。我们对n用归纳法。对应n=1,显然假设定理对于n为真,那么
解:正确答案是1-2/n,错误出现在对n=1的证明中,这时公式的左端或者视为无意义,或者视为0(因为共有n-1项)。
4.[20]证明:斐波那契数除满足等式(3)外,还对一切正整数n满足
解:
5.[21]素数是>1且除1和其自身外没有其他正整数因数的整数。根据此定义和数学归纳法,证明每个>1的整数可以写成一个或多个素数的乘积。(一个素数视为单个素数的“乘积”,也就是它本身。)
解:如果n是素数,它显然是素数的乘积,结论是平凡的。否则,n有因数,于是存在k和m使得n=km,其中1<k,m<n。由于k和m都小于n,根据归纳法,它们可以写成素数的乘积。因此n可以写成出现在k和m的表示中的素数的乘积。
6.[20]证明:如果式(6)在步骤E4之前成立,那么在执行E4后成立。
解:用图4中的记号,我们证明A5蕴涵A6。这是显然的,因为A5蕴涵。
7.[23]对于等和式,给出求和规则,并用归纳法予以证明。
解:。
8.[25](a)用数学归纳法,证明尼科马彻斯(约公元100年)提出的下述定理:(b)利用这个结果,证明注明的公式.
[注记:这公式有一个引人注目的几何解释,有沃伦勒什给出,如图5所示,见Math.Gazette 49(1965),200.其思想同尼科马彻斯定理和图3有关。在马丁加德纳的《打结的甜甜圈》(Knotted Doughnuts,New York:Freeman,1986 )第16章以及约翰康威和理查德盖伊的《数字之篇》(The Book of Numbers,New York:Copernicus,1996)第2章中,可以找出其他“无字”证明。]
边长
边长
面积
图5 习题8(b)的几何形式
解:(a)我们证明等于。事实上,由等式(2),这个和是。不过题目要求用归纳法证明,所以需要采用另外一种方法!对应n=1,结果是显然的。令,有,所以对于n+1的式子的前面各项分别比对于n的各项大2n。因此,对于n+1的和等于对于n的和加上
,
这等于。(b)对于的第一项比对于的最后一项大2。所以由等式(2),从1开始的连续奇数之和=项数。
9.[20] 用归纳法证明:如果,那么。
解:
10.[M22] 用归纳法证明:如果,那么。
解:对于n=10是显然的。如果,有,根据归纳法,这大于。
11.[M30]试求下式的简单求和公式,并予以证明:
解:。
12.[M25] 正文提到,可以推广算法E,使之能够接受形如的输入值,其中u和v为整数。说明如何推广,使得计算仍然可以用初等方法完成(即不用的无穷十进制展开式)。另外证明,如果m=1和n=,则计算不会终止。
解:这个推广唯一的不平凡之处是E2中整数q的计算。可以反复做减法,把问题归纳为判断是整数或负数还是为零,而这是容易解决的。
不难证明,当时,必有和,因为是无理数。如果我们定义为的因数,当且仅当a为整数,那么1与显然没有公因数。用这种方式扩充的算法以正规连分数计算两个输入之比,参阅4.5.3节。
[注记:然而,如果我们推广因数的概念,定义为的因数,当且仅当a形如,其中和是整数,那么存在一种推广算法E的方法,使得它总会终止:如果在步骤E2有和,计算,其中x和y是有理数;现在令,其中,其中和是最接近x和y的整数,并且令。如果,由此推出,因此计算将会终止。关于进一步的资料,请参阅数论教科书中的“二次欧几里得整环”部分。]
13.[M23] 扩充算法E,添加新变量T,在每一步的开头增加操作。(因此,T相当于统计执行步数的计数器。)假定T的初值为0,则图4中的断言A1变为“m>0,n>0,T=0”。同样,应该把附加条件T=1添加到A2。请说明如何把附加条件添加到各个断言中,使得A1,A2,...,A6中的任何一个断言都蕴含,而且仍然可以实现归纳法证明。(因此,计算至多在3n步必定终止。)
解:把“”加进断言A3,A4,A5,A6,其中k分别取值2,3,3,1。另外把“d>0”加进断言A4。
14.[50] (弗洛伊德)编写一个计算机程序,它接受的输入是某种程序设计语言以及可选的断言。为了证明这个计算机程序是正确的,它试图补充所需的其他断言。[假如,力求编写一个程序,它能在只给定A1、A4和A6的条件下,证明算法E是正确的。关于该问题的进一步讨论,见罗伯特弗洛伊德和詹姆斯金发表在国际信息处理联合国大会会刊(IFIP Congress proceedings,1971)上的论文。]
解:
15.[HM28] (广义归纳法)正文说明了如何证明依赖于单个整数n的命题P(n),但是没有描述如何证明依赖于两个整数m和n的命题P(m,n)。在后面这种情况,证明通常是通过某种“二重归纳法”给出的,这种归纳法常常显得不易理解。实际上,有一个比简单归纳法更一般的重要原理,它不仅适用于两个整数的情况,还适用于证明关于不可数集合的命题,例如对于所有实数x的命题P(x)。这个一般原理称为良序(well-ordering)原理。
令是集合S上的一个关系,它具备下述性质:
(i)给定S中的元素想x,y,z,如果xy且yz,那么xz;
(ii)给定S中的元素x和y,下面三种可能性中恰有一种为真:xy,x=y,yx;
(iii)如果A是S的任意非空子集,那么A中存在元素x,对于A中的所有元素y,满足xy(即xy或x=y)。
这个关系称为S的一个良序关系。例如,按照平常的“小于”关系<,正整数显然是良序的。
(a)证明:按照<关系,所有整数的集合不是良序。
(b)在所有整数的集合上定义一个良序关系。
(c)按照<关系,所有非负整数的集合是良序的吗?
(d)(字典序)令S按关系是良序的;对于n>0,令为S中的元素的所有n元组的的集合。如果存在某个使得对于恒成立,而,那么定义。是的一个良序关系吗?
(e)接(d),令。如果对于某个,对于恒成立,而;或者如果m<n,而对于恒成立,那么定义。是T的一个良序关系吗?
(f)证明:是S的一个良序关系,当且仅当它满足上面的条件(i)和(ii),并且不存在无穷序列满足时恒有。
(g)令S按照是良序的,令P(x)是关于S中的元素x的一个命题。证明:如果在P(y)对于所有yx均为真的假定下能够证明P(x),那么P(x)对于S中的所有x为真。
[注记:(g)部分是前面提到的简单归纳法的推广。在S为正整数集合时,它就是正文中讨论的数学归纳法这种简单情形。此时要求证明,如果P(y)对于正整数y<1均为真,那么P(1)为真;这无异于直接要求证明P(1),因为P(y)对于所有这样的y(空集)必定为真。由此可知,在很多情况下无须单独论证P(1).
把(d)同(g)结合起来,就得到了n元归纳法的强有力的方法,用于证明关于n个正整数的命题。
(f)部分在计算机算法中有进一步应用:如果把一道计算的每个状态x映射到属于良序集S的元素,使得计算的每一步能够把状态x变成状态y,且有,那么算法必定终止。这个原理推广了此前证明算法1.1E终止时使用的n值严格递减的论证。]
解:(a)在(iii)中令A=S;每个非空的良序集都是最小元素。
(b)如果,或者如果且x<0<y,令xy。
(c)不是,所有正实数的子集不满足(iii)。[注记:利用所谓“选择公理”可以给出一个比较复杂的论证,证明每个集合都存在某种良序关系,但是目前无人能够显示定义实数上的良序关系。]
(d)为了对证明(iii),对n归纳:令A为的一个非空子集,考虑有A中元素的第一个分量组成的集合,由于是S的非空子集,而且S是良序的,因此中存在最小的元素x。现在考虑A中的第一个分量为x的元素构成的子集,去掉各元素的第一个分量后,可将它视为的一个子集,所以根据归纳法,中存在最小元素,实际上这就是A的一个元素。
(e)不是,不过性质(i)和(ii)成立。如果S包含至少两个不同的元素ab,那么由(b),(a,b),(a,a,b),(a,a,a,b),(a,a,a,a,b),...组成的集合没有最小元素,当m<n时,或者当m=n且在中有时,定义,那么T是良序的。
(f)令S按照是良序的。如果存在这样的一个无穷序列,那么由序列各项组成的集合A不满足性质(iii),因为序列中没有最小元素。反过来,如果是满足(i)和(ii)但是不满足(iii)的关系,令A是S的不含最小元素的非空子集。由于A不空,A中存在;由于不是A的最小元素,在A中存在满足;由于也不是最小元素,又存在;以此类推。
(g)令A是使P(x)为假的所有x的集合。如果A不空,其中存在最小元素。因此P(y)对于所有为真。但是这蕴涵P(),所以不在A中(矛盾),因此A必定是空集,即P(x)恒为真。