您当前位置:首页  >  穿越重生

临高启明

时间:2023-05-25  来源:  作者:吹牛者
这次出席会议的归化民人员,有钟博士的养女钟小英,也有冯珊,还有几个要么是元老的学生弟子,要么是目前在芳草地选拔组中非常出色的天才类人物,一共只有十三个人。
作为能够接触到“黑科技”的未来科技栋梁,他们意识到自己能出现在这样的场合的意义,所以一个个即拘谨又兴奋。
会议并无啰嗦的程序,直接进入了机械计算机的讨论正题。冯诺作为项目组负责人,先汇报了项目进展情况,特别是继电器的开发和改进。接着,会议进入了下一个步骤,也就是制表机制造原理的讨论。
这些天项目组研究下来,制表机的累加功能大致有三种实现方法:
其一,因为穿孔卡上的数据是在1列或连续若干列上分别打孔表示每位的数字,因此计算总和只需分别统计每一列中的各个孔在所有卡片里一共被打了几次,这个靠简单的计数器就能完成。
接下来,再人工把每列各孔的次数乘以该孔的取值后求和,然后各列的总和再根据该列代表的是十位/百位乘以10或100,最后再求和后就可以了。虽然最终结果要用另一个计算器或者人工单独计算,不过反正现阶段制表机的结果也需要人工抄在记录里。
这并不是真正的累加器,但霍勒里思的制表机就是这么做的,机械设计也最为简单,只需要让继电器或者继电器驱动的擒纵叉拨动数盘转动即可。
其二,先不将主动力齿轮与数盘的转动轴直接啮合,而是用继电器控制连接二者的齿轮,只有数字0-9对应的某个继电器通电时,主动力才能驱动相应的机械结构转动数盘。
此时,可以分别使0-9对应的机械结构在拨动数盘时的操作不同,或是多次拨动,或是一次拨动多位,达到各孔数字一同累加的目的。至于进位,与第一方案相同,采用在低位数盘的9和0之间添加继电器驱动高位数盘转动来完成。
这样的机械结构略显复杂,肯定也更占用空间,优点是合并了每列各孔的累加,避免了大量的人工计算乘法以及求和,进而连进位问题也可以解决。最终数盘上的数字就是累加的结果,所见即所得。
最后,就是单纯地用继电器搭建二进制累加器的方案了。在理论设计上难度不大。然而,钟博士在会中散发了他找到的旧时空某继电器狂热者搭建的全继电器版算术逻辑单元(alu)图纸,资料图片上像蜂巢一般密密麻麻的继电器令与会者头皮发麻。某个密集恐惧症患者当即要求出去休息一会“透透气”。
钟博士解释说,如果能从中仅剥离加法器的功能出来,大约也不会特别复杂。不过与会者们大概已经被这疯子搭建的alu吓到了,还是纷纷摇头,连原本相当期待该方案的冯诺也打消了这个念头。——主要是他自己开发的继电器性能他太了解了,就算仅仅是剥离出加法器的功能,也涉及到大量继电器之间的互相控制,现在搞出来的那种粗货恐怕是达不到可靠性的要求。
第三方案就这样首先被放弃了,不过钟博士还打算继续试验一下,算是为以后设计二进制计算机积累一些经验,冯诺也答应下一步优先开发更灵敏可靠、体积更小和重量更轻的继电器供这个方案试验用――前提是机械口能提供足够细的铜线,并且他的土法绝缘漆在细线上仍然有效。
接下来,会议又就第一和第二方案进行了冗长的讨论,机械口的元老们表示方案一肯定是没有问题的,现在回去就可以试制,方案二则要再重新优化一下设计,而且还要看冯诺提供的继电器性能是否够用。
最终项目组还是决定先上方案一。因为各方面评估下来这个方案出问题的几率最小――毕竟结构简单动作可靠,以他们困难的材料水平来说更容易达成。
“又回到了1890年的水平。”冯诺暗暗叹了一口气。这一方案比上次被讥讽为“验钞机”的方案好不了多少。但是穿孔卡已经到位好几个月了,一直在仓库里虫蛀发霉,也不能总是让数据等机器啊。督公那边,近期最好也能报个好消息上去,眼看快到年底了……
年底又是考核项目的时候,拿不出成果起码也得混几篇论文出来当“阶段性成果“,不然企划院和财经省那里都有一番饥荒好打。冯诺可不是一个乐意搞社交的人。
接下来与会元老又就制表机的具体机械设计、工艺、材料和配套进行了冗长的讨论,讨论是非常细节化的,因而会议往往会成为马拉松式的会议――但又非常有必要:元老院的工业体系配套极其不全,几乎任何新设备都要从头开始制造。加上技术人员和熟练工人短缺,原材料更是种类匮乏。按照旧时空那样下达设计方案和图纸是根本造不出任何东西的。整台设备――不管是核心部件还是区区一个螺丝钉,都得从原材料到加工工序全部落实到细节才行。
两个星期后,制表机的第一台原型机终于完工了,机械厂制造了机械系统的各个部件,包括主动力采用蒸汽动力和电动机的两种解决方案。冯诺则带着钱羽之把继电器控制部分组装了进去。
冯诺立刻把卡片搬来开始实际测试,测试结果令人满意。在多次测试中,他们输入不同公社的人口普查卡片并计算该公社人口的年龄和,然后再与人工计算的结果对比,没有出现计算错误的现象。这说明制表机的设计是可靠的,冯诺大大地松了一口气。但设备的效率比想象中要慢许多,大约每10秒钟才能处理一张卡片。这时间太长了,每分钟才能处理6张卡片,比人力快得有限。
-------------------------
下次更新第七卷-两广攻略篇51节





临高启明 三百二十五节 卡片复制
www.telexh .com,最快更新临高启明最新章节!
于是冯诺又对制表机的数据处理模式进行了调整。
之前制表机被设计成逐列读取穿孔卡的模式,这种模式下,即便每列的读取仅需0.1秒时间,80列读完也要8秒,这还不算卡片传送所需的时间。冯诺仔细思考后,认为在实际应用中,每张穿孔卡实际并非所有列都需要做统计或累加操作。
以工资统计为例,穿孔卡上不可能仅有工资数额的相关数据。相反,更多的列应该用于保存工人的姓名、性别、部门、工种、工号等信息,而姓名区位码、部门代码、工种代码、工号之类的信息是没有必要做统计的。
因此,现有条件下,每次仅对一项数据进行统计就足够了,甚至如果某项数据是多位数、分布在穿孔卡的多列上,每次仅处理一位也是可行的,反正统计结果最后也需要人工再求和。
如此一来,制表机在处理每张卡片时,就仅需读取卡片上的某一列数字并累加,速度自然大大加快了,而且也更省电。
冯诺又花了两天简化改造装置,终于使制表机的每小时卡片处理能力稳定在3000张以上,这应该能够满足元老院的一般性统计计算需求了。美中不足是,如果要计算的某项数据有3位数,就需要过3次机器。从易用性的角度来说还是不够方便。不过现在冯诺是为了验证技术思路,具体到实用化阶段还要做更多的改进。
攻克了制表机,实际上大部分机械机构和继电器控制机构已经研发成功,其它类型的机器不过是更改设计、增减和组合部件而已。在穿孔卡机系统中,重要性仅次于制表机的分类机,就是把制表机上用于控制拨动数盘、实现累加功能的继电器,改为分别控制多个送卡机构、把在基准列的不同数字上穿孔的卡片送到不同卡袋。
然而,正当他磨拳擦掌地准备一鼓作气拿下分类机时,新的问题出现了。
由于卡片质量问题,已经运来的卡片资料在这几天对制表机的密集测试中损坏严重,实验材料很快就要短缺了。
冯诺只好把对分类机的跃跃欲试丢到一边,先开发复制机,有了复制机,可以随意复制现有的卡片,卡片短缺的问题也就不存在了。
他找来了旧时空ibm公司的ibm513型复制机的资料,全称是“自动复制穿孔机”(autog 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,不考虑目前的错误是多张卡片在同一列的出错累积而成,因为那概率更低,暂时可以忽略。
--------------------------
下次更新:第七卷-两关攻略篇52节




临高启明 三百二十六节 查错的数学理论
www.telexh .com,最快更新临高启明最新章节!
钱羽之的眼神最早开始恍惚,李加奈坚持到这里也开始走神了,只有冯珊还在听。
“二分查找从一个有序表里找特定值,本质是一种分治策略,也就是把一个大问题分割为若干相似的子问题,然后要么直接求解,要么继续分割。它为什么要求有序表?是为了确保每次运算能够同时求解全部子问题。举个例子,如果升序表的中位值小于被查找值,我可以同时确保两个结论,一,被查找值不在有序表的前一半中,二,被查找值在有序表的后一半中——那么接下来我在有序表的后一半中重复上述操作就行了。”
“我们的问题是类似的,从概率上,首先我们可以合理地假设有且仅有1张卡是错误的。然后,我们每次统计已知的包含错误卡片的所有卡片中的一半,如果统计结果表明错误卡片不在这一半中,那么一定在另一半中,反之亦然。于是我就缩小了一半的错误卡片‘嫌疑范围’。我反复进行折半操作缩小嫌疑范围、缩小到一定程度时,问题也就不再是问题了。”
“我以前和你说过,我们现在做的穿孔卡计算机,其实际能力并不限于眼前看到的这些。刚才我的折半操作很机械吧――总是分出一半、输入,然后检查结果,把包含错卡的那叠拿来重复操作。”
“那么如果有一天,我们设计一台机器来代替我刚才的重复机械操作,与制表机联合起来就能够完成更多的事情,很多大问题将被分解为小问题,然后采用同一个操作流程解决。”
“把看似复杂的问题层层分解为与原问题相似的规模较小的问题,反复用类似的一系列机械性操作求解,让计算机也能够完成,这样的思想叫做‘递归’。这是我们利用计算机很本质的一种思路,你们要好好思考。特别是,在思考这类问题时,不要把现有机械计算机的运行速度考虑进去,觉得还不如人力快。关键要想一想,在人不加以干涉的情形下,计算机仅依照规则运行能够求解什么问题。也就是,什么样的问题是计算机可以解决的,我们叫‘可计算问题’。至于速度,那不是问题――面包会有的。”
冯诺停了下来,让冯珊仔细咀嚼这段话,对她来说,这样的思维模式与数学类似,但又与以前学习的数学相当不同。而李加奈和钱羽之的数学也就是四则运算的水平,要他们理解实在是有点勉为其难。因为昨晚都没睡好,这时已经十分迷糊了,这番话不啻于催眠曲――迷糊间钱羽之还在纳闷这事和面包有什么关系。
“好了,你俩睡觉去吧。我看看这张卡片究竟是怎么回事。”冯诺把还在呆呆思考的冯珊撇在一边,对钱羽之和李加奈说道,他一指里间,“可以在那张床上睡。”说完,他拿起了桌上打错了孔的卡片。
李加奈从床上醒来,发现钱羽之还坐在椅子上,靠着墙边睡得正香。她环顾了一下,冯珊在工作台边看书边计算着什么,而冯元老不在房间里,估计又去哪儿开会了。
她打着呵欠下了床,捅了捅钱羽之,说了声:“上床去睡吧。”没想到他只是哼了一声又不动了。李加奈便用力把他拖到了床上——说是两人轮班,其实昨天晚上钱羽之熬夜值班的时间比她长得多。
大概是感觉到了床上残留的体温,钱羽之翻了一个身,似乎想蜷进李加奈刚刚睡出的凹陷里,继续呼呼大睡起来。
李加奈走到了工作台边倒了一杯水喝。这时她看到冯珊放下书揉了揉眼睛,似乎是打算休息一会,就和她闲聊了起来。不一会,她们就说定下星期一起去参加李加奈和文理学院同学的聚会――据说还有几位前辈也会参加。
攻关小组之后的几天对复制机进行了反复改进与测试,应冯诺的要求,又在复制机的穿孔机构那一排增加了一套读卡机构,这个改动不大,但却可以使复制机兼有部分验证机(verifier)的功能。复制完成后,可以改接少量配线,使机器功能变为自动检查两叠卡片的穿孔是否一致,并在发现穿孔不一致时停机亮灯报警。
二分查找再快,总也比不得直接过一遍机器更快。
此外,改进后的版本还可以固定一张母卡在读卡机构中,穿孔及验证一叠卡片。在实际应用中,这项功能可以把一批卡片的共通孔位预先打好,减小人工打孔的工作量。
不过,虽然复制机经过改进,也修复了打错孔的问题,却仍会偶尔出现漏打孔的现象。最后,攻关小组降低了卡片传动和处理速度,发现问题消失了。
“看来是继电器反应速度的问题了。”孙立把手中的笔扔到了桌面上,“降速运行吧。”
所有人都“唰”地看向冯诺,冯诺只好无言地点了点头。但元老们现在都练得脸皮颇厚――大家水平半斤八两,谁也别笑话谁。尴尬很快恢复了过来,他又提出了开发译码机的方案。
按计划,制表机本应集成打印和汇总穿孔的功能,出于简化单台机器复杂性的目的,现阶段制表机没有包含这些部分。因此冯诺打算先搞个最基本的数字译码机,由于不考虑拉丁字母的打印,甚至已经不能称之为“译码”,单纯只是打印,其机械结构与复制机类似,无非是检孔后激活继电器驱动弧形字排把0-9的数字打印在卡片顶端。现在复制机算是开发完成了,译码机不过是水到渠成的事。
机械口的元老们觉得问题不大,答应尽快制造一台样机送过去。
会到这里就散了,冯诺回到了办公室:他想着今天还得再备备课――随着机械计算机的进展,他觉得得深入的讲授一些与软件工程有关的数学问题了――第一代的程序员几乎都是数学家。
他在办公室里处理了数据中心的日常公文,循例到机房走了一圈,做了日常的设备维护。又把“待修目录”浏览了一遍,用红铅笔在几个“火烧眉毛”级别的项目上打了钩,这些只能等上完课之后牺牲睡眠时间来修理了――自从他弄了机械计算机的项目,原先的工作压下来不少。现在徐老五已经帮他做了大多数的文书工作,本职再荒废下去可就说不过去了。
好不容易把手头的事情逐一处理完,他才起身到了工作间。
现在“工作间”里已经塞的满登登的。从机械厂制造的各种“工程样机”塞满了这个车间,有的则根本不是“技术会议”上的产物,而是某些动手能力强的元老的脑洞的产物――要说完全是脑洞也不尽然,因为这些东西大致就是当年机械计算机发展过程中的不同技术思路。
工程样机自然是不太考究的,因为时间紧,又多是仅仅验证设计思路是否具有工程可行性,所以在设计和制造上没做什么优化,秉承机械厂产品一贯的傻大黑粗不说,许多设备的零件也是外露的,一来节约制造时间,二来便于随时查障调试。
车间里满是铁嘴钢牙的机器,地上也有不少散落的物料零件。所以冯诺一直关照自己的这三个帮工,进工作间一定要做好防护。他自己以身作则,头戴藤编安全帽,身穿粗布工作服,脚穿劳保皮鞋。
1...921922923924925...1107
猜你喜欢