自从计算机革命开始以来,“算法”这个词已经成为数学词典中一个熟悉的词。它指的是由一系列定义明确的步骤组成的程序,可以解决问题。当您使用一个数字来移除另一个大数字时,您使用的是除法。由于计算机在没有被告知如何运行的情况下无法解决问题,所以计算机编程技能主要是编译高效算法的技能。我们称之为“技能”而不是“技术”,因为奇妙的“AHA”在寻找好的算法中起着重要的创造性作用。

“苗”指的是一种能在最短时间内解决问题的算法。使用电脑是要花钱的,就像员工工作需要钱一样。因此,拥有高效(好)的算法有很大的实际优势。数学中一个流行的分支叫做“运筹学”,旨在开发解决复杂问题的最有效的方法。

尽管这一部分的程序性问题是为了娱乐而选择的,你仍然可以很容易地理解许多深奥的数学概念。例如,第一个谜题生动地显示了数学家称两个看似无关的问题为“同型”的含义。事实上,康乐活动中的号码投注比赛与玩“赛艇游戏”有相同的手法。这和加拿大数学家利奥的结论是一样的吗?摩西发明的智能数学游戏和网络系统中使用的游戏是“同一类型的”。这些游戏都基于3-3魔方,这是最古老的魔法组合之一。

其他包含重要概念的谜题包括阿基米德浮体定律,它解决了河马的称重问题;决策理论中尚未解决的问题,如家务的分配;小偷或强盗提出的一些组合问题;“懒情人”提出的一个重要曲线理论问题。

“曲线理论”是对由曲线连接的一系列点的研究。运筹学中的许多实际问题可以用曲线来表示,有些可以有简明的结果。众所周知,如何用“克拉苏斯特运算”来“最小间隔排列树”。与此密切相关的另一个问题是“斯坦纳的树排问题”,这一问题尚未得到整体解决。由于“斯坦纳树”问题有许多实际应用,因此开发有效的计算机算法来解决这个问题的大量研究工作正在进行中。

斯坦纳问题属于一种叫做NP完全的奇妙问题。在某种程度上,这些都是一些尚未解决的问题。没有已知的好算法,如果有的话,还不知道。寻找具有n个点的斯坦纳树的最著名的算法如下。随着n的增加,寻找树所需的时间也呈指数增长。事实上,它增长得如此之快,以至于一台计算机要花上几万年的时间才能在相对较少的点数(如数百)内找到最佳答案。这种问题以一种奇妙的方式相互联系在一起。如果一个问题找到了一个有效的计算机算法,它可以很快应用到其他问题。此外,如果任何一个算法指示没有有效的算法,则对于其他算法得出相同的结论。数学家认为后者是正确的。大量开发高效算法的工作会发现没有最好的“斯坦纳树”,但有接近最好的。

这一部分比本书的其他部分要多,它揭示了一些现代数学中的主要数学家目前正在研究的许多问题。