于是馮諾又對制表機的數據處理模式進行了調整。
之前制表機被設計成逐列讀取穿孔卡的模式,這種模式下,即便每列的讀取僅需0.1秒時間,80列讀完也要8秒,這還不算卡片傳送所需的時間。馮諾仔細思考后,認為在實際應用中,每張穿孔卡實際并非所有列都需要做統計或累加操作。
以工資統計為例,穿孔卡上不可能僅有工資數額的相關數據。相反,更多的列應該用于保存工人的姓名、性別、部門、工種、工號等信息,而姓名區位碼、部門代碼、工種代碼、工號之類的信息是沒有必要做統計的。
因此,現有條件下,每次僅對一項數據進行統計就足夠了,甚至如果某項數據是多位數、分布在穿孔卡的多列上,每次僅處理一位也是可行的,反正統計結果最后也需要人工再求和。
如此一來,制表機在處理每張卡片時,就僅需讀取卡片上的某一列數字并累加,速度自然大大加快了,而且也更省電。
馮諾又花了兩天簡化改造裝置,終于使制表機的每小時卡片處理能力穩定在3000張以上,這應該能夠滿足元老院的一般性統計計算需求了。美中不足是,如果要計算的某項數據有3位數,就需要過3次機器。從易用性的角度來說還是不夠方便。不過現在馮諾是為了驗證技術思路,具體到實用化階段還要做更多的改進。
攻克了制表機,實際上大部分機械機構和繼電器控制機構已經研發成功,其它類型的機器不過是更改設計、增減和組合部件而已。在穿孔卡機系統中,重要性僅次于制表機的分類機,就是把制表機上用于控制撥動數盤、實現累加功能的繼電器,改為分別控制多個送卡機構、把在基準列的不同數字上穿孔的卡片送到不同卡袋。
然而,正當他磨拳擦掌地準備一鼓作氣拿下分類機時,新的問題出現了。
由于卡片質量問題,已經運來的卡片資料在這幾天對制表機的密集測試中損壞嚴重,實驗材料很快就要短缺了。
馮諾只好把對分類機的躍躍欲試丟到一邊,先開發復制機,有了復制機,可以隨意復制現有的卡片,卡片短缺的問題也就不存在了。
他找來了舊時空ibm公司的ibm513型復制機的資料,全稱是“自動復制穿孔機”(autogpunch)。這是年代才出現的機型,原理不難,但機器結構略復雜,馮諾不打算原樣復制,根據原理造出一個原型機就好。
他盡量工整地在紙上畫出示意圖,復制機的核心部件是一套可放置雙排卡片的聯動傳動機構,當模板卡片經過處理單元時,讀卡機構的電刷掃過卡片,在穿孔位置連通電路激活對應位置的繼電器,從而控制新卡片處理單元的穿孔機構在新卡的相同位置穿孔。這一次,讀取和穿孔需要逐列進行了。
不過馮諾在琢磨穿孔刀的控制時卻卡住了:穿孔卡上每列的各個孔位之間僅有幾毫米的距離,他搞得繼電器那么大,怎么可能同時控制多個刀頭穿孔呢?想了很久也沒想通,只好第二天拿著半吊子的示意圖又去求教機械口的元老。
還是來找孫立,一進辦公室,發現展無涯也在這里。馮諾長期蝸居在機械廠里面,和展無涯算是熟悉,知道他是個實在人,也不虛禮客套,直接把“圖紙”一攤,提出了問題。展無涯哈哈大笑,指著旁邊一臺臨高自產的英文打字機說,“你去看看那個打字機怎么就能把40多個按鍵的字符都打到同一個位置上?”
馮諾一拍腦袋,對啊,他的辦公室也有英文打字機,可是從來沒想到過這一點。
展無涯接著說,“這是機械設計里最基本的問題了,除了用打字機那種弧形字排結構可以解決外,還有不少種方案都能解決。你就別自己瞎琢磨機械設計的事了,這事交給咱們專業的辦,你還是老老實實設計你的繼電器控制方案吧,昨天督公還問過這個項目的進度。”
因為馮諾實際上并不懂機械設計,所以他交到機械廠的圖紙基本上只算是個“原理圖”,某些可以抄現成的構造他是照抄了過去的設計圖紙,但是具體到生產環節還是要靠機械廠的技術人員重新設計。
馮諾連忙匯報了一番進展,又拍胸脯保證最近一定加快研發速度,請領導放心。
復制機卻不像制表機那樣順利地通過了測試。
樣機送來時已經是傍晚了,首先分別測試了復制1張和10張卡片,經人工檢查后,沒發現什么問題,復制的新卡片與模板卡片完全一致。于是馮諾交代讓錢羽之和李加奈一次性復制1000張卡片試試。
由于是逐行復制,復制機的速度大致與未優化前的制表機類似,1000張卡片大概需要3個多小時,馮諾交代后就下班了。領導很關心,故而馮諾這段時間經常加班,今天好不容易有不需要什么技術含量的活,可以只讓錢羽之二人盯著。
復制少量卡片時,重疊新舊卡片對著光看看即可檢查穿孔是否一致。1000張卡片卻不能再用人工方法檢驗正確性了。因此,馮諾囑咐他們復制好后用制表機檢查穿孔是否一致。方法是分別統計兩疊卡片每列的09的數量是否一致,如果結果相同,有問題的概率就可以忽略不計了。不過按當前制表機的速度,每列的檢查時間大概在20分鐘左右,80列需要20多個小時,只好讓兩人晚上輪班了。
第二天早上,馮諾去企劃院開了個小會,快中午的時候才來到辦公室。
他發現馮珊正領著錢羽之和李加奈二人一張張地對著光線檢查卡片穿孔是否一致。——大概已經檢查了半天,三人的眼神均有些渙散,錢羽之和李加奈更是頂著黑眼圈。馮諾十分奇怪,連忙過去詢問。
原來,錢羽之和李加奈昨晚一直用制表機檢查1000張卡片的復制結果,卻發現新舊卡片在某列的09數量并不相同,復制的卡片少了一個3,卻多了一個4。也就是說,復制機出現了錯誤,在某張卡片上錯把3打成了4。所以他們現在正在找究竟是哪張卡片出了問題。
“工作態度可嘉,工作方法愚蠢。”馮諾評論道。他走過去拿起三人還沒檢查過的兩疊卡片,問:“檢查多少了?”
“122張。”
“114張。”
“107張。”
三個人分別答道。
“看看,三個人一上午才查了三百多張。以后我們要測試1萬張卡片,得找多少人來?”說著他把手中的一疊卡片遞給馮珊,說:“查出330張來。”
然后他問錢羽之是哪一列出了錯,調整了制表機的讀卡電刷位置。又把自己手里剩余的一疊也分成張的兩疊。
隨后,馮諾先后把馮珊查出來的的330張新卡和自己分出的330張舊卡用制表機統計了一遍。
十幾分鐘后,統計結束了,結果是相同的。
“所以,錯卡肯定在另外一半里面了。”馮諾指了指剩余的兩疊卡片。
于是他從剩余的兩疊327張卡片中,各分出了160張卡片,輸入了制表機。這次結果顯示錯誤的卡片就在這160張之中。
馮諾把這批卡片又分為兩份,每份包括一一對應的新舊卡片各80張,隨便拿了一份再次重復上面的操作。
幾分鐘后,嫌疑范圍縮小到了10張,馮諾把卡片分給馮珊三人,很快找出了錯誤卡片。
馮諾把錯卡放到了桌子上,沒有去看。而是對馮珊說:“我們做計算機,目的就是為了代替人力完成機械性的計算工作。機械的工作它來做,不用你來做。你要做的是什么呢?是思考怎么驅使它工作達到你的目的。你來說說,剛才這樣找錯誤卡片是什么原理?”
“二分查找法?”馮珊不確定地問到。
馮諾點點頭,“不一樣,但思路是類似的。如果你稍微思考一下,昨天我為什么讓羽之和加奈用制表機檢查兩疊1000張卡片是否一致,就能想到很多方案。最起碼,你可以每次輸入100張卡,最多10次,你們也就能知道錯卡在哪個100張里面了。——當然,如果你能想到這個,也就能意識到二分查找是最快的。”
“我們這么做有個前提,就是復制出錯的概率很低。否則多張穿孔卡都在同一列出錯,這方法就不靈了。所以,昨天我們先檢查了1次和10次復制的結果,都沒問題。”
“事實也表明我們的估計符合實際情況,1000張卡片,也就是有80000列的復制操作,他們兩個昨晚到今早檢查了30多列,實際只發現1列出錯,而且統計發現只少了一個3,并且只多了一個4。這是在查找錯誤卡片之前你們就知道的,對吧?我們沒有別的先驗知識,所以只能假設復制機的出錯概率為1/30000,不考慮目前的錯誤是多張卡片在同一列的出錯累積而成,因為那概率更低,暫時可以忽略。
下次更新:第七卷-兩關攻略篇52節
頂點小說地址:
移動端:m.dingdian6感謝您的收藏!