原来,钱羽之和李加奈昨晚一直用制表机检查1000张卡片的复制结果,却发现新旧卡片在某列的0-9数量并不相同,复制的卡片少了一个3,却多了一个4。也就是说,复制机出现了错误,在某张卡片上错把3打成了4。所以他们现在正在找究竟是哪张卡片出了问题。
“工作态度可嘉,工作方法愚蠢。”冯诺评论道。他走过去拿起三人还没检查过的两叠卡片,问:“检查多少了?”
“122张。”
“114张。”
“107张。”
三个人分别答道。
“看看,三个人一上午才查了三百多张。以后我们要测试1万张卡片,得找多少人来?”说着他把手中的一叠卡片递给冯珊,说:“查出330张来。”
然后他问钱羽之是哪一列出了错,调整了制表机的读卡电刷位置。又把自己手里剩余的一叠也分成330张和327张的两叠。
随后,冯诺先后把冯珊查出来的的330张新卡和自己分出的330张旧卡用制表机统计了一遍。
十几分钟后,统计结束了,结果是相同的。
“所以,错卡肯定在另外一半里面了。”冯诺指了指剩余的两叠卡片。
于是他从剩余的两叠327张卡片中,各分出了160张卡片,输入了制表机。这次结果显示错误的卡片就在这160张之中。
冯诺把这批卡片又分为两份,每份包括一一对应的新旧卡片各80张,随便拿了一份再次重复上面的操作。
……
几分钟后,嫌疑范围缩小到了10张,冯诺把卡片分给冯珊三人,很快找出了错误卡片。
冯诺把错卡放到了桌子上,没有去看。而是对冯珊说:“我们做计算机,目的就是为了代替人力完成机械性的计算工作。机械的工作它来做,不用你来做。你要做的是什么呢?是思考怎么驱使它工作达到你的目的。你来说说,刚才这样找错误卡片是什么原理?”
“二分查找法?”冯珊不确定地问到。
冯诺点点头,“不一样,但思路是类似的。如果你稍微思考一下,昨天我为什么让羽之和加奈用制表机检查两叠1000张卡片是否一致,就能想到很多方案。最起码,你可以每次输入100张卡,最多10次,你们也就能知道错卡在哪个100张里面了。当然,如果你能想到这个,也就能意识到二分查找是最快的。”
“我们这么做有个前提,就是复制出错的概率很低。否则多张穿孔卡都在同一列出错,这方法就不灵了。所以,昨天我们先检查了1次和10次复制的结果,都没问题。”
“事实也表明我们的估计符合实际情况,1000张卡片,也就是有80000列的复制操作,他们两个昨晚到今早检查了30多列,实际只发现1列出错,而且统计发现只少了一个3,并且只多了一个4。这是在查找错误卡片之前你们就知道的,对吧?我们没有别的先验知识,所以只能假设复制机的出错概率为130000,不考虑目前的错误是多张卡片在同一列的出错累积而成,因为那概率更低,暂时可以忽略。
--------------------------
下次更新:第七卷-两关攻略篇52节