循环小结的存在必然性的证明

这是很长时间以来断断续续的学习了鸽巢原理之后的第一次出手解决一个实际的问题,很漂亮。

这是一道教科书中的习题,题目的原文是:证明两个有理数相除,那么一定存在循环小结。其实在小学里的时候,这个念头就在我的脑子里闪过,当然只是闪了一下而已。也许是缘份吧,这次就来证明之。

设两个有理数A,B;并且A/B,不失一般性还可以约定A大于B。我们可以令A/B = B * I1 + R1,其中I1是A/B后的商的整数部分,而R1则是余数部分。由于没有除尽,A/B的除法运算还会继续下去。根据除法的计算方法,第二次应该是R1 /B。同理,这次也可以写成R1/B = B * I2 +R2,其中I2是R1/B相除之后的商的整数部分,而R2则是余数部分。由于还是没有除尽,那么接着是计算R2/B。于是除法会这么一直持续下去,并且 每除一次都会得到一个商的整数部分和余数部分。

假设这样的相除连续进行了N次,并且N是大于A的最小的整数。于是我们得到N个I和N个R。显然这N个余数都是小于A的,同时R的个数又是大于A的,因此根据鸽巢原理,这N个余数中必定存在2个余数是相同的。令这2个相同的余数是Ri和Rk。

那么第Ri+1个余数是Ri/B得到的,而第Rk+1个余数是Rk/B得到的,所以当Ri等于Rk的时候,那么Ri+1一定等于Rk+1。同理我们可以得 到Ri+2等于Rk+2,Ri+3等于Rk+3...。当这个序列增加到第N的时候,即Ri+1,Ri+2,...,Ri+n时,Ri+n就又会和 Ri+1,Ri+2,...,Ri+n-1中的一个余数相等,于是我们又可以找到这样的序列。显然这样的序列每次增加到N个的时候就会和前面的序列中的一 个余数相等,从使得当前序列中的余数和前一个序列中的余数依次相等。于是就出现了循环小结。证毕。

你可能感兴趣的:(循环)