一位教計(jì)算機(jī)程序的老師抱怨道:在課堂里用到的例子,要么是邏輯的,要么是數(shù)學(xué)的。
計(jì)算機(jī)程序正是依靠邏輯和數(shù)學(xué)才得以運(yùn)作,再加之計(jì)算機(jī)特有的超級(jí)耐心與海量存儲(chǔ)能力,使其在處理涉及邏輯和數(shù)學(xué)相關(guān)的問題上尤其顯出優(yōu)勢(shì)。然而要小心,有時(shí)即便是看似簡(jiǎn)單的邏輯或數(shù)學(xué)問題,不恰當(dāng)?shù)?未必是錯(cuò)誤的)程序也可能把事情搞糟。
床頭的四本書
Kaikai的床頭總是堆著幾本書,他有在睡前看書的習(xí)慣,但每晚只抽其中的一本來看。在相當(dāng)長(zhǎng)的一段時(shí)間里,床頭柜上總共疊了四本書,最下面的那本,是平均6天才看一次;其上一本,是平均3天看一次;再上面一本,是平均2天看一次;那么最上面的一本書,多少天才看一次呢?請(qǐng)編寫程序解決此間題。
許多熟悉編程的朋友都覺得這是個(gè)棘手的問題,不僅要涉及數(shù)組和循環(huán)語(yǔ)句,還有著難纏的不確定性,因?yàn)镵aikai可能連著幾晚都看同一本書,然后又在其后連續(xù)幾天都把這本書擱在一邊。那么答案究竟是什么呢?
身處險(xiǎn)境的007
毫無疑問,007早巳成為世界上最神奇的特工的代號(hào),下面這個(gè)問題將使007身處極端危險(xiǎn)的境地,并將是對(duì)這位世界著名特工體力和智力的雙重考驗(yàn)。
某次危險(xiǎn)的行動(dòng)中,007不幸被困于一間密室中,與他一起被困的是一個(gè)定時(shí)炸彈,炸彈上顯示了一條一英尺長(zhǎng)的紅色光柱,這根光柱隨時(shí)間流逝均勻地縮短著(導(dǎo)演也許覺得,用導(dǎo)火索太老土,用LED數(shù)字倒計(jì)時(shí)又太濫了),當(dāng)光柱全部消失時(shí),炸彈就會(huì)爆炸。
對(duì)于這f133641258ab9e44fea71cf4cf024db2f3d57314cf9d20b7c32503077ab7c129種新型炸彈,007毫無拆解能力。他發(fā)現(xiàn)密室有兩扇門:A和B。當(dāng)光柱剩下一半前,他一直在努力打開A號(hào)門,但他失敗了,當(dāng)光柱剩下1/4前,他努力打開B號(hào)門,但又失敗了。隨著光柱每次減半,007就來回在門A和門B前徘徊,顯然,他的動(dòng)作速度必須越來越快才行。問題是:當(dāng)最后的爆炸來臨前,007在A號(hào)門還是B號(hào)門前?
如果以阿基里斯與烏龜賽跑的思路來考慮此間題,那么一定會(huì)感覺相當(dāng)困惑,因?yàn)楣庵粩鄿p半的過程似乎永遠(yuǎn)沒個(gè)盡頭。然而讓人感覺非常意外的是,計(jì)算機(jī)程序居然很快能計(jì)算出一個(gè)所謂的標(biāo)準(zhǔn)答案來(當(dāng)然,不要太相信這個(gè)答案),為什么呢?
(作者單位:1上海市位育中學(xué)200231 2河南省許昌市職業(yè)技術(shù)學(xué)院46100