上一讲欧拉已经证明哥尼斯堡七桥问题不存在每座桥只走一次的走法。但是这里有一个特殊情况,即A、B、C、D每个地区恰巧都有奇数个桥连通。欧拉当然也想到了如果存在偶数桥,及任意数量的河和桥图是否存在每座桥只走一次的走法。
偶数桥连接A地的情况分析
先考虑当A如果有偶数桥连接时候的情况,假设有2座桥a、b连接到A。如果从A地出发,在回到A,他的路径就是AaBbA,可以看到A出现了2次。如果步行者从B地出发到A,那么A只出现一次。
按此思路,假定有4座桥通往A,而且线路从A开始。那么字母A在整个线路里面将出现3次(AabAcdA),如果从别处开始A只出现2次(aAbcAd)。
继续考虑6座桥的情况,当A是起点的时候,A出现4次,否则只有3次。所以根据这一规律,如果桥数是偶数,当起点从A开始的时候,A出现的次数等于桥数除以2加1【A次数=(桥数/2)+1】,否则A次数=桥数/2。
地区代码 | 接连桥数 | 从该地出发字母出现次数 | 不从该地出发字母出现次数 |
---|---|---|---|
A | 4 | 3次(AabAcdA) | 2次(aAbcAd) |
A | 6 | 4次(AabAcdAefA) | 3次(aAbcAdeAf) |
A | 8 | 5次(AabAcdAefAghAa) | 4次(aAbcAdeAfgAh) |
次数=(桥数+1)/ 2 | 次数=桥数/2 |
奇数情况分析
地区代码 | 接连桥数 | 字母出现次数(奇数桥无论从哪里出发都一样) |
---|---|---|
A | 3 | 2次(AabAcdA) |
A | 5 | 3次(AabAcdAefA) |
A | 7 | 4次(AabAcdAefAghAa) |
次数=(桥数+1)/ 2 |
通过这一规律得出结论:如果有奇数个桥,通往任意地区字母出现的次数=(桥数+1)/2;如果有偶数个桥,字母的次数=桥数/2。
最后求出所有地区字母出现的次数和如果等于桥数+1(上一讲得出的结论,4个桥需要5个字母,5个桥需要6个字母),那么每个桥只走一次的走法是存在的,前提是必须从有奇数桥的地区出发;如果和比桥加1数少1,那么这个走法也存在,可以从任意存在偶数桥的地区出发。
任意河桥系统是否存在每座桥只走一次的程序
先把用河隔开的各地用A、B、C、D等表示。
取桥的总数+1,写在顶部。
表的第一列写出各地区的字母,第二列写出通往该地区的桥数。
对偶数的字母打上星号。
把第二列偶数/2,及(奇数+1)/2,写在第三列。
把第三列各个数加起来,如果总和比顶上的数少1或相等,这样的走法存在。当和数比顶上的数少一时候,必须从带星号的地区出发;当总数等于顶上的数的时候,必须从没有星号的地区出发。
对于哥尼斯堡问题列表如下:
桥数=7 | 桥数+1=8 (意思就是说需要8个字母序列) | |
---|---|---|
地区 | 通往该地区桥数 | 如果桥数是偶数=偶数/2;如果是奇数=(奇数+1)/2 |
A | 5 | 3 |
B | 3 | 2 |
C | 3 | 2 |
D | 3 | 2 |
总桥数=14 | 总和=9 (因为9>8,所以走法不存在) |
再来看一个4条河两个岛共15个桥的例子:
桥数=15 | 15+1=16 (意思就是说需要16个字母序列) | |
---|---|---|
地区 | 通往该地区桥数 | 如果桥数是偶数=偶数/2;如果是奇数=(奇数+1)/2 |
A | 8 | 4 |
B | 4 | 2 |
C | 4 | 2 |
D | 3 | 2 |
E | 5 | 3 |
F | 6 | 3 |
总桥数=30 | 总和=16 (因为16=16,所以存在走法) |
所以根据这个表格所列,即便相当复杂的地形,也能很容易判断是否存在每个桥只走一次的走法。
但是欧拉通过观察数据,发现还有一种更简单的方法,第二列的桥数之和等于真实桥数量的两倍,理由是每个地区每一座桥都被数了2次。即第二列的值总是为偶数(因为每座桥都被数了2次,相当于总桥数*2,也就可以看作一个任意数乘以2总是偶数)。再进一步可以得出每一地区的桥数的集合里不会有1个奇数,也不会有3,5,7个奇数(因为当有1,3,5,7个奇数时候,总和肯定不会是偶数)。换句话说,这些桥数集合里面,只可能存在偶数个奇数(两个奇数相加等于偶数)。回看哥尼斯堡的表有4个奇数(即偶数个奇数)。
所以结合以上结论,如果所有地区连接的桥数都是偶数的情况下,字母出现的次数正好等于桥数(观察表很容易得出结论),那么字母出现的数字自然比桥数+1要少1.
进一步,只有当桥数集合中有2个奇数,其余都为偶数时候,才肯能出现总和比桥数少一的情况。如果集合中多于2个奇数,那么总和总是大于桥数+1,自然就不存在所有桥走一遍的走法。
通过次数字规律,欧拉得出了著名的定理(也就是一笔画定理):
如果通奇数桥的地方不止2个,那么所求线路不存在。
如果只有2个地方通奇数桥,只能从这两个地方之一出发,才能有所求线路。
如果没有通奇数桥的地区,从任意地区出发都可以找到所求线路。
至此,欧拉已经找到是否存在所求线路的基本定理。但是我们如何找到这个线路呢?
如何找到所求线路
欧拉第一步把连接同一对地区的两座桥先抹去。如下图,我们可以找到一个走法。
然后我们在恢复桥梁,就很容易发现笔画在经过重复桥梁后,依然是一笔画。
总结
伟大的数学家欧拉在1736证明了哥尼斯堡七桥问题不存在每个桥只走一次的走法时候,也为数学带来了全新的领域,即图和拓扑几何学。
欧拉解决问题的办法,也是从最初的穷举法开始思考,发现穷举法所列数目太多,从思路上他断定一定有专用的办法存在。这就是数学家伟大的地方,即数学的抽象思维能力。欧拉将所求线路是否存在的问题,一步步简化为所求字母的序列是否存在的这一问题,通过观察字母出现的次数和桥数之间的关系,得出最终的定理。这就是将一个图形问题,抽象为一个数字组合的问题,进而求解这一数字组合是否存在的问题。这一思考问题的方式和其他伟大的数学家思考问题的方式殊途同归。
通过复盘数学家如何解决问题的步骤,我们也能体会到一种豁然开朗的感觉,自己的思维方式也得到了很好的锻炼,获益良多。