分类机的运用

第七卷「大陆」广州治理篇 | 吹牛者 | 约 3297 字 | 编辑本页

设置好了分类机后,冯诺打开了机器的开关,卡片开始唰唰地分类了。他关照李加奈和钱羽之看着机器,就和冯珊一起回机房检查服务器的运行情况了。

快中午的时候,冯诺回到了车间里。卡片已经分类完成了,他看了看表,2 个小时多一点。对于分类 1 万张卡片来说,速度还挺快。不过李加奈和钱羽之却沮丧地坐在机器旁。

原来并没有找出任何符合条件的卡片。

这倒很奇怪。冯诺想了想,又看了看分类机的情况。他注意到第 9 号卡袋里没有任何卡片,第 10 号卡袋却有几张卡片,这说明这些卡片是倒在了最后一关上。他捡起了 10 号卡袋里面的一张卡片看了一下。——这些卡片之前已经用译码机在顶端打印了每列对应的数字。

“2750。这个户主不叫林光辉。”冯诺说。“你们查查,3354,这是林,没问题。然后是 2567,2750。”

“林广灰,这个人叫林广灰……”李加奈又好气又好笑。

“是不是打孔时候打错了?”冯珊问。

“哼,”冯诺哼了一声,他倒觉得此人八成是广州难民营收容的难民,所以带了一个“广”字,至于“灰”,大概是收容当天起名用得都是各种颜色吧。

“原籍:12216,这是福建吧。职业:农民。成份:军户。”——看来这户八成是和百图林氏没什么关系的了。

李加奈根据这些信息,在户籍信息表的“福建”、“农民”那一叠中,找出了林广灰家成员的“常住人口登记表”,抄录了必要的信息,写成一份证明文件。还在后面附加了信息查阅过程的说明,冯诺也在上面签了字。

元老们现在都很自觉地把能看到的问题解决掉。——不论是不是自己一亩三分地的事情,总归这是元老院的事情,那也就是自己的事情。

都写好了,李加奈就准备把证明送出去。

“加奈,你就不用回来了,下午去天地会办理一下调职手续,把档案拿过来。”冯诺吩咐道。

随后,他让冯珊和钱羽之整理卡片,分别按户籍所在地、姓氏、原籍和职业统计人数,然后与人工计算的结果作对比,正式测试分类机的样机。

正式转换工作的一个星期后,李加奈在回家的时候收到里一封发件人是一个邮箱号码的信件。她没有左顾右盼,立刻拿起信封,迅速塞进了口袋。

晚上,李加奈迫不及待地找机会拆开了信件,里面是没有任何抬头和落款,只有简单的几句密语指示。她又仔细核对了数处暗记,确定无误后才强自按捺内心的激动,销毁了信件。

当李加奈如约到了信中指示的联络地点时,下巴都快惊掉下来了,没想到经常来电子设备车间指导他们技术的贾组长竟然是自己的上线。她可从来没有察觉到过。

贾苯却没什么意外的表情,他没有解释为什么会中断和她的联系――李加奈自然也没有问――只是简单询问了李加奈这段时间的情况,又收下了她交上来的工作汇报和个人小结。指示她“一切照过去方针办”后,就匆匆离开了。

第二天,李加奈精神饱满的回到车间时,冯诺正在指导冯珊和钱羽之使用分类机,还在黑板上写了不少东西。见到李加奈回来,他点点头示意她也过来一起听。

分类机的测试很成功,只是,不能处理“或”条件的确是个很大的局限。关于如何改进,冯诺心里已经有了一个大致的思路,不过今天他要以此为例给学生们上一节课。

这其实已经涉及到了计算机的核心原理。他要的并不是简单的操作员,而是能实际运用的程序员。

“今天,我们从理论上来分析一下,我们的分类机能解决什么样的问题,不能解决什么样的问题。”

“首先,排序。毫无疑问,这个问题是可以解决的,我们把 10 个读卡单元上的读卡触辊对准同一列的 0-9,则卡片就会按照这一列的数字被推送到 10 个卡袋中,手工把卡片重新合成一叠时,这些卡片就是按这一列数字的大小排序的了。”

“其次,单条件分类。‘把所有卡片分为男性和女性两叠’。这个完全可以完成,只需要打开 1 个读卡单元,对准性别列的 0 孔,性别为 0,也就是女性,会被推入卡袋,男性则不会。”

“第三,多条件分类。这就需要具体分析了。我给你们出几个问题,你们想一下怎么用分类机完成。第一个问题,假设我们现在有整个东亚地区的户籍卡片,我要找出海南临高加来公社的卡片,该如何操作?羽之,你说一下。”

“让 1~7 号读卡单元依次筛选出户籍所在地为 1001014 的卡片。”钱羽之回答道。

“正确。加奈,第二个问题,我依然有整个东亚地区的户籍卡片,现在想找出三亚大区除奴隶以外的卡片,该如何操作?”

“三亚大区包括两个县级单位,三亚榆林,代码 10011,三亚田独,代码 10012,其下属奴隶区代码为 1001299。”

“让 1~4 号读卡单元依次筛选出户籍所在地前 4 位为‘1001’的卡片;然后让 5 号读卡单元把户籍所在地第 5 位为‘1’的卡片推入 5 号卡袋,这些是三亚榆林的卡片;让 6 号读卡单元把户籍所在地的第 5 位不是‘2’的卡片推入 6 号卡袋,此时机器上剩余的是三亚田独的卡片;让 7 号读卡单元把户籍所在地第 6 位不为 9 的卡片推入 7 号卡袋,这些是三亚田独 11~89 公社的卡片;让 8 号读卡单元把户籍所在地第 7 位不为 9 的卡片推入 8 号卡袋,这些是三亚田独 90-98 公社的卡片,此时机器上剩余的就是三亚田独的奴隶卡片了。合并 5 号、7 号、8 号卡袋的卡片即为所要的结果。”李加奈考虑了半天才回答。

“很好,加奈,正确。”冯诺有点意外。

“冯珊,现在我有临高的全部户籍卡片,一,找出住在十三村和百仞公社的姓名为‘刘四’的人;二,找出原籍为福建和海南的人。你试试这两个问题。”

“这两个问题都不能解决。”冯珊想了一下后回答道。

“为什么?”

“原因不同,第一个问题不能解决是因为读卡单元不够。”冯珊说。

“要确保卡片上的姓名是“刘四”,需要确保卡片上存储姓名的列是“刘四”的 8 位区位码,这需要 8 个读卡单元排除不符合条件的卡片,可以说,到达第 9 个读卡单元的所有卡片,姓名都是“刘四”。

“但是,此时分类机只剩下两个读卡单元了,百仞公社是‘11’,十三村是‘18’。可以用 9 号读卡单元把户籍所在地的第 6 位‘公社’不为‘1’的卡片排除,此时机器上剩余的是 11~19 公社的‘刘四’。其中,可以用 10 号读卡单元把第 7 位为‘1’的卡片推入卡袋,这是‘百仞公社的刘四’,但不足以把‘十三村的刘四’从剩余卡片中分类出来了。所以这个应用不能被完成。”

“不过,如果分类机上再有一个读卡单元,这个应用就可以解决了。”

“嗯,不错。第二个问题呢?”

“第二个问题并未用到所有读卡单元,而是我们现在的分类机从设计上是不能解决的。”

“说一说。”

“原籍海南,代码为 100,原籍福建,代码为 122。我们可以首先用 1 号读卡单元选出户籍所在地第 1 位为‘1’的卡片。但是之后如果我们选择推出第 2 位为 0 的卡片,则就不能继续筛选第 3 位也是 0 的卡片,会导致海南(100)与台湾(101)、济州岛(102)的卡片无法再分离;如果我们选择推出第 2 位不为 0 的卡片,则会导致福建的卡片被推入卡袋,无法进一步与其他卡片分离。”

“很好。这就是钟首长说的不能做‘或运算’的问题。他说得还比较笼统,我们现在从理论上分析一下,为什么这个问题我们解决不了。”冯诺走到黑板前说道。

“所谓理论上的分析,就要把像之前我问你们的那些一个个具体的问题,抽象成一个一般的问题进行研究。”

“我们要找任何卡片,总有一系列的条件对目标卡片进行描述,这一系列条件,我们叫做‘命题’。这些条件反应在筛选手段上,就是穿孔卡片上的某个孔‘是否’穿孔。注意,也就是说,每个命题存在两种可能性,是和否,我们称之为‘真、假’。”

“现在我们有了两个概念,命题、真假。最终,一张卡片,是不是我们所要的卡片,往往有许多条件共同限定,每个条件是一个命题,那么我们的最终目标,就是由许多命题合成的一个新命题,我们可以称之为‘复合命题’,组成复合命题的每项条件,可称为‘简单命题’。自然,‘复合命题’也有‘真假’。”

他在黑板上写上:命题、真假、复合命题、简单命题。