三百二十六節 查錯的數學理論(1 / 2)

臨高啟明 吹牛者 1574 字 2020-11-28

AK小說 www.06ak .com,最快更新臨高啟明最新章節!

錢羽之的眼神最早開始恍惚,李加奈堅持到這里也開始走神了,只有馮珊還在聽。

「二分查找從一個有序表里找特定值,本質是一種分治策略,也就是把一個大問題分割為若干相似的子問題,然後要么直接求解,要么繼續分割。它為什么要求有序表?是為了確保每次運算能夠同時求解全部子問題。舉個例子,如果升序表的中位值小於被查找值,我可以同時確保兩個結論,一,被查找值不在有序表的前一半中,二,被查找值在有序表的後一半中——那么接下來我在有序表的後一半中重復上述操作就行了。」

「我們的問題是類似的,從概率上,首先我們可以合理地假設有且僅有1張卡是錯誤的。然後,我們每次統計已知的包含錯誤卡片的所有卡片中的一半,如果統計結果表明錯誤卡片不在這一半中,那么一定在另一半中,反之亦然。於是我就縮小了一半的錯誤卡片『嫌疑范圍』。我反復進行折半操作縮小嫌疑范圍、縮小到一定程度時,問題也就不再是問題了。」

「我以前和你說過,我們現在做的穿孔卡計算機,其實際能力並不限於眼前看到的這些。剛才我的折半操作很機械吧――總是分出一半、輸入,然後檢查結果,把包含錯卡的那疊拿來重復操作。」

「那么如果有一天,我們設計一台機器來代替我剛才的重復機械操作,與制表機聯合起來就能夠完成更多的事情,很多大問題將被分解為小問題,然後采用同一個操作流程解決。」

「把看似復雜的問題層層分解為與原問題相似的規模較小的問題,反復用類似的一系列機械性操作求解,讓計算機也能夠完成,這樣的思想叫做『遞歸』。這是我們利用計算機很本質的一種思路,你們要好好思考。特別是,在思考這類問題時,不要把現有機械計算機的運行速度考慮進去,覺得還不如人力快。關鍵要想一想,在人不加以干涉的情形下,計算機僅依照規則運行能夠求解什么問題。也就是,什么樣的問題是計算機可以解決的,我們叫『可計算問題』。至於速度,那不是問題――面包會有的。」

馮諾停了下來,讓馮珊仔細咀嚼這段話,對她來說,這樣的思維模式與數學類似,但又與以前學習的數學相當不同。而李加奈和錢羽之的數學也就是四則運算的水平,要他們理解實在是有點勉為其難。因為昨晚都沒睡好,這時已經十分迷糊了,這番話不啻於催眠曲――迷糊間錢羽之還在納悶這事和面包有什么關系。

「好了,你倆睡覺去吧。我看看這張卡片究竟是怎么回事。」馮諾把還在呆呆思考的馮珊撇在一邊,對錢羽之和李加奈說道,他一指里間,「可以在那張床上睡。」說完,他拿起了桌上打錯了孔的卡片。

李加奈從床上醒來,發現錢羽之還坐在椅子上,靠著牆邊睡得正香。她環顧了一下,馮珊在工作台邊看書邊計算著什么,而馮元老不在房間里,估計又去哪兒開會了。

她打著呵欠下了床,捅了捅錢羽之,說了聲:「上床去睡吧。」沒想到他只是哼了一聲又不動了。李加奈便用力把他拖到了床上——說是兩人輪班,其實昨天晚上錢羽之熬夜值班的時間比她長得多。

大概是感覺到了床上殘留的體溫,錢羽之翻了一個身,似乎想蜷進李加奈剛剛睡出的凹陷里,繼續呼呼大睡起來。

李加奈走到了工作台邊倒了一杯水喝。這時她看到馮珊放下書揉了揉眼睛,似乎是打算休息一會,就和她閑聊了起來。不一會,她們就說定下星期一起去參加李加奈和文理學院同學的聚會――據說還有幾位前輩也會參加。

攻關小組之後的幾天對復制機進行了反復改進與測試,應馮諾的要求,又在復制機的穿孔機構那一排增加了一套讀卡機構,這個改動不大,但卻可以使復制機兼有部分驗證機(verifier)的功能。復制完成後,可以改接少量配線,使機器功能變為自動檢查兩疊卡片的穿孔是否一致,並在發現穿孔不一致時停機亮燈報警。

二分查找再快,總也比不得直接過一遍機器更快。

此外,改進後的版本還可以固定一張母卡在讀卡機構中,穿孔及驗證一疊卡片。在實際應用中,這項功能可以把一批卡片的共通孔位預先打好,減小人工打孔的工作量。

不過,雖然復制機經過改進,也修復了打錯孔的問題,卻仍會偶爾出現漏打孔的現象。最後,攻關小組降低了卡片傳動和處理速度,發現問題消失了。