自從計(jì)算機(jī)革命開始以來,“算法”一詞已成為數(shù)學(xué)詞典中一個(gè)熟知的詞匯。它就是指一種由一系列限定好的步驟組成的、能夠解決問題的程序。當(dāng)你用一個(gè)數(shù)字去除另一個(gè)大的數(shù)字時(shí),你就是用的除法。由于計(jì)算機(jī)在沒有被準(zhǔn)確告知如何運(yùn)行的情況下不能解決問題,因此計(jì)算機(jī)程序設(shè)計(jì)技藝主要是編制高效的算法的技藝。我們稱“技藝”而不是“技術(shù)”,是因?yàn)樵诎l(fā)現(xiàn)好的算法中,奇妙的“啊哈(AHA)”起著主要的、創(chuàng)造性的作用。
“妙”是指一種算法能在最短的時(shí)間內(nèi)解決問題。使用計(jì)算機(jī)需要花錢,就像雇工干活需要花錢一樣。因此,具有高效(好)的算法,就具有很大的實(shí)際優(yōu)勢。一種被稱為“操作研究”的數(shù)學(xué)熱門分科,就是開發(fā)解決復(fù)雜問題的最高效方法。
盡管本部分的程序問題出于娛樂而作了選擇,你還是可以很容易地了解許多深?yuàn)W的數(shù)學(xué)概念。如第一個(gè)謎題,生動(dòng)地表明數(shù)學(xué)家們把兩個(gè)看似不相關(guān)的問題稱為“同型”的含義。游藝活動(dòng)中有關(guān)數(shù)字的打賭比賽實(shí)際上含有與玩“劃井游戲”相同的計(jì)謀。這與由加拿大數(shù)學(xué)家利奧?摩瑟發(fā)明的聰明的數(shù)學(xué)游戲以及用于網(wǎng)絡(luò)系統(tǒng)的游戲是“同型的”。這些游戲的計(jì)謀都是基于3―3數(shù)字魔方,這是一種最古老的奇妙組合之一。
其它包含重要概念的謎題有:解決了河馬稱重問題的阿基米德浮體定律;在決策理論中尚未解決的諸如分配家務(wù)勞動(dòng)的問題;一些由竊賊或強(qiáng)盜提起的組合問題;一個(gè)由“懶惰的情人”提起的重要的曲線理論問題。
“曲線理論”是關(guān)于曲線連接的一系列點(diǎn)的研究。許多操作研究中的實(shí)際問題都可以用曲線表示出來,有些可有簡潔的結(jié)果。如我們知道的如何用“克拉斯考運(yùn)算法”排列樹的最小間隔。另一個(gè)與此密切相關(guān)的問題,即“斯坦納的樹排問題”在總體上尚未解決。由于“斯坦納樹”問題有許多實(shí)際應(yīng)用,關(guān)于開發(fā)解決這一問題的高效計(jì)算機(jī)運(yùn)算法的大量研究工作正在進(jìn)行。
斯坦納的問題屬于所謂NP―Complete的一類奇妙問題。這是一些在一定程度上尚未解決的問題。沒有已知的好的算法,如果有也還不知道。發(fā)現(xiàn)n個(gè)點(diǎn)的斯坦納樹的已知最佳算法是這樣的,隨著n的增加,發(fā)現(xiàn)樹所需要時(shí)間也是呈指數(shù)增加。實(shí)際上,它增加得如此之快,以致對于一個(gè)相對較小數(shù)的點(diǎn)(如幾百個(gè)),計(jì)算機(jī)需要用數(shù)萬年的時(shí)間才能得到最佳答案。這類問題以奇妙的方式相互聯(lián)系,如果發(fā)現(xiàn)其中一個(gè)問題的高效計(jì)算機(jī)算法,就可以迅速應(yīng)用到其它問題上。而且如果算法中的任何一種表明不存在有高效算法,也就為其它算法得出了同樣的結(jié)論。數(shù)學(xué)家們認(rèn)為后者是正確的,大量開發(fā)高效算法的工作將發(fā)現(xiàn),沒有最佳的“斯坦納樹”,但有接近最佳的。
本部分比本書的其它部分要多,其中揭示出了現(xiàn)代數(shù)學(xué)中某些尖端數(shù)學(xué)家目前正在研究的許多問題。