本故事根据刘慈欣著名科幻小说《三体》“秦始皇人列计算机”改编
我是一个秦国士兵,今天我要去参加一项伟大的工程。
说到这项工程,还得从三个月前说起。
三个月前的一天,皇帝宣召三名士兵上殿,其中一个就是我。
这一天,除了高高在上的秦皇陛下,大殿之上还出现了几个相貌奇特的人,穿着奇装异服,不知道是从哪里来的。
他们中的一个留着短发,让我们三个站成三角形队列,我们搞了半天才弄明白原来就是楔形队列,还让我站在前面面向其他两名士兵。
另外一个留着卷曲的长发,不知从哪里找来六盏灯,三红三白,给我们三名士兵每人一盏红灯,一盏白灯。还说什么红色代表零,白色代表一。
从他们的口中,我弄清楚了我的任务:我要根据另外两人举灯的颜色来举灯,只有当另外两人都举白灯的时候,我才能举白灯,否则我都只能举红灯。
随后,我们仨进行了很多次练习,把所有情况都试过了:
红:0 白:1
红 红 -> 红
红 白 -> 红
白 红 -> 红
白 白 -> 白
这工作非常简单,我们很快就熟练掌握了。
就在练习的期间,从他们和陛下的对话中,我知道了那两个人的名字,短发那个叫冯·诺依曼,长卷发那个叫牛顿,他们从西洋而来。
那个叫冯·诺依曼的西洋人向陛下说到,我们三个士兵组成了一个与门,但我不明白是什么意思。
接下来,这西洋人重新给我们制定规则:我还是根据另外两人举灯的颜色来举灯,只不过这一次有一点区别,只要另外两人有任意一个举了白灯,我就要举白灯。
我们又练习了一会儿:
红:0 白:1
红 红 -> 红
红 白 -> 白
白 红 -> 白
白 白 -> 白
听他们说,这种三人组成的队列叫或门,我还是没太明白。
就在我还在迷糊着,冯·诺依曼又变换了规则,这一次只需要两个人了,我的任务变得更简单了:只要跟另一个人举相反颜色的灯就行了。
红:0 白:1
红 -> 白
白 -> 红
这种队列,他们叫做非门,这一下我倒是有点明白过来,非就是反过来的意思。
有了这些基础,他们开始给我们稍微复杂一点的规则了。在他们的指导下,我们又陆续完成了与非门、或非门、异或门、同或门。
最后,我从他们的对话中,总算搞清楚了这是在干什么。
原来,这两个西洋人自称可以预测太阳运行的规律,这可把陛下高兴坏了,毕竟在咱们这个世界里,谁也不知道乱纪元什么时候来,有多少人会突然死于非命。如果能准确预知恒纪元的时间,提前脱水躲避灾难,这将是一件伟大的功绩!
那个叫牛顿的西洋人自称会一种叫微积分的特别的计算方法,可以用来计算太阳的运行规律,但需要的计算量非常庞大。
而另外那个叫冯·诺依曼的西洋人则希望发明一种可以快速计算的机器,他们叫做计算机,用来自动实现计算。我们三个士兵刚才构成的那一个个门,就是组成这台机器的一个个部件。
听那个短发西洋人说,想要完整的创建出这台机器,至少需要一千万个这样的部件,这样算下来,就得需要三千万人庞大的队伍。
我实在想不明白,就这样两三个人的组合,简单举下灯,怎么就能完成复杂的计算问题,还能预测太阳的运行规律?但那两个西洋人竟然还是说服了皇帝,去集结三千万大军。
皇帝的圣旨很快下发了,我们三个士兵因为出色的表现,都得到了奖励,不仅如此,还都被委以重任,直接辅助这两个西洋人完成这台计算机的创建。
接下来这几天,冯·诺依曼又给我们灌输了很多新的概念,他需要先把我们教会,才能让这三千万人学会。
为了方便管理和指挥,他给不同的门设计了不同的符号:
不仅如此,他还教会了我们一个新的阵型:
他挑了六名士兵,三人一组,分别站成一个与门和一个异或门,随后像这样连接起来,两个门的输入保持一致,都举同样颜色的灯,他把这样的阵型叫做一个半加器。
听这西洋人说,上面的阵型可以用来计算加法。
“一加一,不应该是二吗,你这是怎么计算的?”,我有些不解。
“这是二进制加法,1+1=10,这10就是2的二进制写法,其中0是加法的和,1是加法的进位”
“二进制?”
“对,十进制是逢十进一,这二进制是逢二进一”
虽然他给我解释了半天,但我还是不太明白,不过我也不用管那么多,按照规则举灯就行了。
对了,他给这种阵型也设计了一个符号:
半加器的阵型训练成熟之后,又继续增加难度,用了更多的士兵组成了全加器。
老规矩,他给这种阵型也设计了一个符号:
经过好几天的密集训练,我们已经能够熟练掌握举灯的规律了。他又继续召集更多的士兵,组建更庞大的军阵:多位加法器。
不过这军阵虽然越来越大,但每个士兵只要做好自己的本职工作,负责好自己所在门部件的举灯就好了,人虽然多,但工作倒也简单。
半个月过去后,陛下的三千万大军集结完成,这冯·诺依曼也拿出了一张巨大的图纸,上面密密麻麻的画了符号和线条。
他告诉我们,这是计算机的组建图,里面有中央处理器、寄存器、堆栈、内存、硬盘、显示器、总线···他说了一堆新的名词。
我们几个要做的事,就是按照这图纸,把三千万大军分解成一个个的计算机组件、加法器,直到一个个的门部件。这可是一件巨大的工程,光是这项工作就又花费了将近一个月的时间。
等到分解工作完成,三千万大军开始整齐的排列在大地上,形成一张巨大的计算机主板,蔚为壮观,而我就在最核心的负责计算的部件CPU中。
咱们CPU方阵中,除了负责计算的功能单元,还有负责存储数据的寄存器方阵,计算过程中要用到的数据就是临时存放在这里。因为他们紧挨着我们,所以数据传输起来很快。
在CPU方阵隔壁不远处是存储堆栈,寄存器方阵规模有限,只能存储很少量的数据,更多计算过程中的中间结果需要保存在这里。我们两个方阵之间通过总线连接,进行数据的传输。这项工作是由轻骑兵队伍完成,因为我们距离不算远,通信起来还是比较快的,但远处负责永久存储数据的硬盘方阵就要慢很多了,那是一群文人组成的方阵,不仅距离很远,轻骑兵奔波费时,记录数据也比我们举灯要慢得多,所以他们是整个计算机最拖后腿的方阵。
接下来的这段日子,我们每天都是密集的训练任务,把西洋人教我们的东西一级级教下去。
这一晃三个月就过去了,今天是陛下正式检阅的日子。
随着皇帝的一声令下,计算机开始启动,接着进行系统自检、引导程序启动、操作系统加载,一切都按照过去这几个月反复训练的样子运行着,我们熟练的挥动着手里的白灯和红灯,早已经轻车熟路了。
但毕竟有三千万人,总有人会出错。这不,运行一段时间后,不知道是累了还是开小差,我们CPU方阵中有一个士兵因为举错了灯,导致门部件输出状态出错,进而导致咱们CPU的状态寄存器出现错误,整个计算机系统都被锁死了!
这个士兵可就惨了,不仅是他,和他一起组成那个门部件的另外两位士兵也跟他一起遭了殃,全都被斩首。从那之后,所有人都更加小心,即便是练习很多遍,也丝毫不敢怠慢。
经过一年多的工作,我们总算完成了第一阶段的计算工作,计算结果显示,我们即将迎来长达两年的恒纪元。
和计算结果一样,太阳准时升了起来,大地终于迎来了久违的温暖,整个计算机主板都沸腾了!
但还没高兴多久,我们就发现了不对劲,大地开始震动,山脉开始崩塌,计算机方阵乱成一团,所有的一切都飞向了天空。
我们都被那些西洋人给骗了!
就在这时,我的眼前出现了几行文字:
原来我只是一个游戏中的bot!