第2章 前言(2)(2 / 3)

請問,怎樣才能把六個人全部渡過河去?解決這個比較複雜的渡河問題,可以采用在括號裏寫兩個數的辦法,來記錄河左岸人數的變化情況。在括號中的一對數,前一個表示楚國商人數,後一個表示晉國商人數。例如(2,3),就是說河的左岸有2個楚國商人,3個晉國商人。

開始時,六名商人全在左岸,采用上述記法,就是(3,3)。我們的目的是要使他們全部過河,到達右岸,所以終極目標是(0,0)。也就是說,他們全部過了河,左岸沒有人了。問題是怎樣才能從(3,3),逐步演變到(0,0)呢?按規定,有些情況是不許可的。例如(3,2),說明在左岸的楚人比晉人多,這就是不許可的。於是,許可的情況隻有(3,3),(2,3),(1,3),(0,3),(2,2)(1,1),(0,0),(1,0),(2,0),(3,0)這十種。至於船上的情況,因為船最多渡兩人,不會發生楚人比晉人多的情形,所以不用考慮。

為了說明小船在左岸還是在右岸,我們畫一條橫線,橫線上方的括號裏的數對,表示船在左岸時的情況;橫線下方的括號裏的數對,表示船在右岸時的情況。

要是從甲情況可以一步演變到乙情況,當然這時由乙情況也一定可以演變回去,就在甲、乙之間連一條線。例如從上方的(3,3),可以一步變到下方的(2,3),或者(2,2)、(1,3),就由(3,3)向這三個括號各畫一條線。

把所有與(3,3)相連的線都畫出來,這就得到一張圖:

把這張圖翻譯出來,便是:

第一步,兩名楚國商人從左岸到右岸;第二步,其中一人劃船回到左岸;第三步,回來的一人與原先留在左岸的一名楚國人一起渡河;第四步,一名楚國人劃船回來;第五步,兩名晉國人過河;第六步,一名楚國人和一名晉國人回來;第七步,兩名晉國人過河;第八步,一名楚國人回來;第九步,兩名楚國人過河;第十步,一名楚國人回來;第十一步,兩名楚國人過河。至此,全部人員渡河完畢。

從圖上看出,共有四種最好的渡河辦法,都是要渡11次。

明白了這個道理和辦法後,你就不難解決:當楚國人和晉國人各有六人,而小船一次最多可容納五人時,隻用七步就可完成渡河。

要是不限定步數,隻要小船每次最多可容納四人,那就可以證明,任意數目的楚國商人和晉國商人,隻要人數相等,都是可以渡過河去的。

這種方法,在數學裏名叫狀態分析圖。它在人工智能等學科的研究中,有著蓬勃的生命力。

高塔逃生

這是流傳在蘇聯格魯吉亞的民間故事。

三百多年前,這塊土地被一個凶暴殘忍的大公統治著。他有一個獨生女兒,不但異常美麗,而且心地善良,經常接近和幫助窮苦人,她已經有二十歲了,大公把她許配給鄰國的一個王子,可是她卻愛著一個鐵匠--年輕的海喬。由於出嫁的日子快要到來,她和海喬冒險逃到山裏,可是很不幸,給大公手下的人抓回來了。

大公暴跳如雷,決定第二天就要把他們處死,命令手下的人在今天夜裏,把他們關在一座沒有完工的陰森的高塔裏。關在一起的,還有一個侍女,因為她曾經幫助過他們逃跑。

塔很高,在頂上一層,才開有窗子,從那裏跳下去準會粉身碎骨。大公想,派人看守,說不定看守的人會同情他們,把他們放掉,所以下令撤掉一切看管,並且不準任何人接近那座塔。

海喬仔細尋找塔內有沒有什麼東西可以幫助他們逃跑。不久,他發現有一根建築工人遺留在那裏的繩子,繩子套在一個生鏽的滑輪上,而滑輪是裝在比窗略高一點的地方。繩子的兩頭,各係著一個筐子。原來這是泥水匠吊磚頭用的。

海喬做過建築工人,他經過一番觀察和估量,斷定兩隻筐子的載重量隻要不超過170公斤,兩隻筐子的載重相差接近10公斤、而又不超過10公斤,那麼,筐子就會平穩地下落到地麵。

海喬知道他愛人的體重大約是50公斤,侍女大約有40公斤,自己的體重是90公斤。他在塔裏又找到一條30公斤的鐵鏈。他經過一番深思熟慮,終於使三個人都順利地降落到地麵,一同逃走了。

請問,他們究竟是怎樣逃走的?這個故事很有趣,經過反複試探,不斷修正,不難解決這個問題。

一、海喬先把30公斤的鐵鏈放在筐裏降下去後,就叫侍女(40公斤重)坐在筐裏落下去,這時放有鐵鏈的筐子回上來。

二、海喬取出鐵鏈,讓愛人(50公斤重)坐在筐裏落下去,她下降到地麵時,侍女回上來。侍女走出來後,愛人也走出筐子。

三、海喬又把鐵鏈放在空筐中,再一次降到地麵,愛人坐了進去(這時筐的載重量是50+30=80公斤,海喬(90公斤)坐在上麵的筐裏,落到地麵後,愛人走出上麵的筐子後,他也走出筐子。

四、留在筐中的鐵鏈,再次降到地麵,這次又輪到侍女坐在上麵的筐子裏降落到地麵,裝著鐵鏈的筐子回上來。