卡片复制
第七卷「大陆」广州治理篇 | 吹牛者 | 约 3340 字 | 编辑本页
于是冯诺又对制表机的数据处理模式进行了调整。
之前制表机被设计成逐列读取穿孔卡的模式,这种模式下,即便每列的读取仅需 0.1 秒时间,80 列读完也要 8 秒,这还不算卡片传送所需的时间。冯诺仔细思考后,认为在实际应用中,每张穿孔卡实际并非所有列都需要做统计或累加操作。
以工资统计为例,穿孔卡上不可能仅有工资数额的相关数据。相反,更多的列应该用于保存工人的姓名、性别、部门、工种、工号等信息,而姓名区位码、部门代码、工种代码、工号之类的信息是没有必要做统计的。
因此,现有条件下,每次仅对一项数据进行统计就足够了,甚至如果某项数据是多位数、分布在穿孔卡的多列上,每次仅处理一位也是可行的,反正统计结果最后也需要人工再求和。
如此一来,制表机在处理每张卡片时,就仅需读取卡片上的某一列数字并累加,速度自然大大加快了,而且也更省电。
冯诺又花了两天简化改造装置,终于使制表机的每小时卡片处理能力稳定在 3000 张以上,这应该能够满足元老院的一般性统计计算需求了。美中不足是,如果要计算的某项数据有 3 位数,就需要过 3 次机器。从易用性的角度来说还是不够方便。不过现在冯诺是为了验证技术思路,具体到实用化阶段还要做更多的改进。
攻克了制表机,实际上大部分机械机构和继电器控制机构已经研发成功,其它类型的机器不过是更改设计、增减和组合部件而已。在穿孔卡机系统中,重要性仅次于制表机的分类机,就是把制表机上用于控制拨动数盘、实现累加功能的继电器,改为分别控制多个送卡机构、把在基准列的不同数字上穿孔的卡片送到不同卡袋。
然而,正当他磨拳擦掌地准备一鼓作气拿下分类机时,新的问题出现了。
由于卡片质量问题,已经运来的卡片资料在这几天对制表机的密集测试中损坏严重,实验材料很快就要短缺了。
冯诺只好把对分类机的跃跃欲试丢到一边,先开发复制机,有了复制机,可以随意复制现有的卡片,卡片短缺的问题也就不存在了。
他找来了旧时空 IBM 公司的 IBM513 型复制机的资料,全称是“自动复制穿孔机”(Automatic Reproducing Punch)。这是 20 世纪 40 年代才出现的机型,原理不难,但机器结构略复杂,冯诺不打算原样复制,根据原理造出一个原型机就好。
他尽量工整地在纸上画出示意图,复制机的核心部件是一套可放置双排卡片的联动传动机构,当模板卡片经过处理单元时,读卡机构的电刷扫过卡片,在穿孔位置连通电路激活对应位置的继电器,从而控制新卡片处理单元的穿孔机构在新卡的相同位置穿孔。这一次,读取和穿孔需要逐列进行了。
不过冯诺在琢磨穿孔刀的控制时却卡住了:穿孔卡上每列的各个孔位之间仅有几毫米的距离,他搞得继电器那么大,怎么可能同时控制多个刀头穿孔呢?想了很久也没想通,只好第二天拿着半吊子的示意图又去求教机械口的元老。
还是来找孙立,一进办公室,发现展无涯也在这里。冯诺长期蜗居在机械厂里面,和展无涯算是熟悉,知道他是个实在人,也不虚礼客套,直接把“图纸”一摊,提出了问题。展无涯哈哈大笑,指着旁边一台临高自产的英文打字机说,“你去看看那个打字机怎么就能把 40 多个按键的字符都打到同一个位置上?”
冯诺一拍脑袋,对啊,他的办公室也有英文打字机,可是从来没想到过这一点。
展无涯接着说,“这是机械设计里最基本的问题了,除了用打字机那种弧形字排结构可以解决外,还有不少种方案都能解决。你就别自己瞎琢磨机械设计的事了,这事交给咱们专业的办,你还是老老实实设计你的继电器控制方案吧,昨天督公还问过这个项目的进度。”
因为冯诺实际上并不懂机械设计,所以他交到机械厂的图纸基本上只算是个“原理图”,某些可以抄现成的构造他是照抄了过去的设计图纸,但是具体到生产环节还是要靠机械厂的技术人员重新设计。
冯诺连忙汇报了一番进展,又拍胸脯保证最近一定加快研发速度,请领导放心。
复制机却不像制表机那样顺利地通过了测试。
样机送来时已经是傍晚了,首先分别测试了复制 1 张和 10 张卡片,经人工检查后,没发现什么问题,复制的新卡片与模板卡片完全一致。于是冯诺交代让钱羽之和李加奈一次性复制 1000 张卡片试试。
由于是逐行复制,复制机的速度大致与未优化前的制表机类似,1000 张卡片大概需要 3 个多小时,冯诺交代后就下班了。领导很关心,故而冯诺这段时间经常加班,今天好不容易有不需要什么技术含量的活,可以只让钱羽之二人盯着。
复制少量卡片时,重叠新旧卡片对着光看看即可检查穿孔是否一致。1000 张卡片却不能再用人工方法检验正确性了。因此,冯诺嘱咐他们复制好后用制表机检查穿孔是否一致。方法是分别统计两叠卡片每列的 0-9 的数量是否一致,如果结果相同,有问题的概率就可以忽略不计了。不过按当前制表机的速度,每列的检查时间大概在 20 分钟左右,80 列需要 20 多个小时,只好让两人晚上轮班了。
第二天早上,冯诺去企划院开了个小会,快中午的时候才来到办公室。
他发现冯珊正领着钱羽之和李加奈二人一张张地对着光线检查卡片穿孔是否一致。——大概已经检查了半天,三人的眼神均有些涣散,钱羽之和李加奈更是顶着黑眼圈。冯诺十分奇怪,连忙过去询问。
原来,钱羽之和李加奈昨晚一直用制表机检查 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。这是在查找错误卡片之前你们就知道的,对吧?我们没有别的先验知识,所以只能假设复制机的出错概率为 1/30000,不考虑目前的错误是多张卡片在同一列的出错累积而成,因为那概率更低,暂时可以忽略。