作者:学夫子
前面我们讲辗转相除法的时候,顺便讲过辗转相除法的雏形——迭代相减法,总体来说就是大数减小数,结果与小数构成新数组,进行相同的动作,直到只剩下一个非零数为止,这个非零数就是这几个数的最大公约数。今天我们把这一思想稍微变换一下:给定三个数,大数减小数,得到的三个数组成新的数组,再对新数组进行相同的动作,这样轮流下去,结果会是怎样?
答案是,最后将陷入0→a→a式的循环。如下面所示的几个例子
(13,9,16)→(4,7,3)→(3,4,1)→(1,3,2)→(2,1,1)→(1,0,1)→(1,1,0)→(0,1,1)→(1,0,1)→…………
(23,18,31)→(5,13,8)→(8,5,3)→(3,2,5)→(1,3,2)→…………后面的就和上面一样了
我们可以证明,对于任意的三个数,不仅是自然数,负数,小数什么的都可以,进行相同的动作以后,必定会陷入0→a→a式的循环。我们假设三个数为a,b,c,并且设a≥b≥c,因为只有三个数,所以这三个数不管怎么排列都是出现相同的结果。
(a,b,c)→(a-b,b-c,a-c)
到这一步我们似乎就无法继续下去,但是我们可以发现,第一步以后得出来的三个数有着很明显的特征:a-b+b-c=a-c;也就是其中两个数之和等于第三个数,这其实就是“类费氏数列”中的相邻三个数。显然地,若继续下去,将会得到一组小的费氏数组,然后进一步会得到更小的费氏数组……但是我们都知道,这个小是有限度的,因为必须保证三个数大于零,但是这个过程又可以无限继续下去,所以唯一的解释就是这个数组必定会陷入一个循环。这个循环就是我们的0→a→a式循环,因为除此之外不存在其他的循环。
上面的解释是比较粗糙的,真正的解释比较复杂,至少我是没有找到简单点的,希望各位有。
但是类似的,对于四个数却是另外一种情况,因为假设四个数为a,b,c,d且a≥b≥c≥d,进行相同的动作以后,不一定就出现(a-b,b-c,c-d,a-d),因为他们会出现其他情况,也就是第一步以后不一定出现三个数之和等于第四个数的结果。以题目为例。
(13,9,16,25)→(4,7,9,12);(9,13,16,25)→(4,3,9,16)
所以对于四个数的情况,似乎就不能按照我们上面的方法去探究。那么对于四个数的情况,最终是不是会陷入循环呢?也许答案会让你惊讶:最终会全部变成0→0→0→0!
(13,9,16,25)→(4,7,9,12)→(3,2,3,8)→(1,1,5,5)→(0,4,0,4)→(4,4,4,4)→(0,0,0,0)
(9,13,16,25)→(4,3,9,16)→(1,6,7,12)→(5,1,5,11)→(4,4,6,6)→(0,2,0,2)→(2,2,2,2)→(0,0,0,0)
不管一开始你取的是什么数,整数也好,负数也好,任何实数也好,其最终都将归为四个零就好像太阳最终会用尽一样。更有趣的是,如果我们一开始不是采取相减得方法,而是采取相除的办法,而且在相除的时候总是用大数除以较小数,那么最终结果会是怎样?其最后会归于(1,1,1,1)!比如我们一开始取(2,3,7,10),经过各轮变换如下:
对群论有点了解的人都知道,0是加法群的幺元,1是乘法群的幺元,上面的变换虽然简单,确实意义深刻。(来源:学夫子数学博客)
|