算法与启发法
也有不少时候,比起脚踏实地按部就班进行解答的算法,选择借助直觉走捷径的启发法要更为高明。其中,高斯的例子较为出名。
在高斯10岁的时候,小学老师给班上学生布置了一项课堂作业:“把从1到100的数全部加起来。”趁学生们在拼命计算之时,老师刚想抽一支烟,没想到高斯立马就答出了正确答案“5050”。
高斯的解法是:1+2+3+…+100=101×100/2=5050。因为1+100=2+99=3+98=…=50+51=101,像这样只是改了改数字的排列方式,计算所需的劳力就大幅下降了。
值得注意的是,一旦通过直观的灵感发现了这一解决方法,它就会作为“算法”被记录在大脑里,获得“逻辑性解答法”的地位。高斯的这一计算法,不仅能运用于从1~100的计算,作为一种逻辑性步骤,它还可以运用于0~100的所有偶数之和的运算,或是1~999的所有奇数之和的运算等多种多样的场合中。
小知识
逻辑算法的操作一:“两辆列车正以每小时20英里的速度相向行驶,假设有一只小鸟在两辆列车之间以每小时30英里的速度往复飞行。假设两辆列车出发时相距1000英里,直到小鸟被迎面相撞的两辆列车夹在中间时,小鸟的总飞行距离是多少?”
让我们来看看启发法的另一个例子,并对下述问题进行思考。“有四张扑克牌,两张黑,两张红,并都以背面朝上的方法摆放。同时随意翻开两张后,请问它们同色的概率是多少?”
这个问题只要运用穷举法一定能得出答案。把四张牌各自标注为红1、红2、黑1、黑2,进行组合并一一列举出来。红1红2、红1黑1、红1黑2、红2黑1、红2黑2、黑1黑2——共有上述6种组合,因为其中只有红1红2、黑1黑2这两种组合是同色,所以正确答案是三分之一。因为这是一种利用穷举法能够确确实实得出答案的解法,所以它是一种算法式解答。
这个解法很可靠,但有些费时间。如果我们按照下面这种方法就能迅速得出正确答案,即搞清楚一点,就算我们把“同时翻开两张”这个条件改为“先翻开第一张再翻开第二张”,概率也不会发生变化,因为时间差不会影响问题的主旨。这样一来,不管第一张翻出什么,剩下三张牌中同色的只有一张,而异色的则有两张,所以颜色一致的概率是三分之一。
小知识
逻辑算法的操作二:面对上页中提到小鸟在两车之间往复飞行的问题,冯·诺伊曼立即回答道:“750英里”,出题者则感叹道:“不愧是诺伊曼老师,普通人都要把小鸟的往复路程进行一一计算并全部累加起来啊。”诺伊曼歪了歪头,说道:“……可我也是这样做的啊。”看来超一流的数学家不仅会利用启发法,在这种拼硬实力的逻辑算法的操作上也十分快捷。