有四个间谍,打算夹带30亿比特(智力增强技术)的信息返回自己的星球,不过得先通关海关的检查。
宇宙万物无非是信息的集合,宇宙大爆炸时粒子的聚合,星云的演化,DNA 的结构,人类的音乐、绘画、体育活动,甚至人类的感情、信仰和智力,一切的一切,就其本质而言,无非是信息而已。而所有信息都能数字化。自从20世纪人类发明电脑后,这个道理已经变得非常明晓了,因为,
电脑能实现的所有令人眼花缭乱的魔术,其实只是0 和1 的长长的序列。 所以,从理论上说完全能做到这一点:在这个宇宙灭亡时,带着一个写满数字序列的笔记本逃到另一个宇宙,就能重建老宇宙的所有细节。
如果用01、02、03、04、05……24、25、26这26个代码来分别代替26个英文字母,那么‘智力增强技术’(The intelligence strengthen technique )这个标题变成数字后就是:200805 09142005121209070514030519201805140720080514200503081409172105.
其实仅用0 、1 两个数字表示就行了,不过那样的数字序列更长一些。当然这只是理论上的可能。宇宙所包含的信息太庞大了,如果我们用原子做基本的信息载体,那么要想容纳这个宇宙的所有细节,这个笔记本的重量恐怕要赶上宇宙本身。
第一个间谍带了一块抛光过的石头,这块石头60多克重,也就是说,它里面含有1023个硅原子,2 乘1023个氧原子。如果用原子来做信息的最小载体,它能容纳十万亿亿的信息,远远超过智力增强术所包含的信息量了。
第二个间谍带了一根笛子,笛子的由上下两段组成。这根笛子的调音缝是精心调整过的,它让笛子上下两段成为固定的重量,用上段的重量做分子,下面的重量做分母,可以得出一个无限循环的小数,这个小数零后面的部分就可以用来记录那30亿比特的信息了。
第三个间谍患上了一种感冒,海关检查员还是发现,DNA 中有30亿个碱基,它的序列是由四字母组成,换算成二进位数字的话,有60亿比特的信息容量。所以就拿着这个人的唾液去化验了。
最后一个间谍,用的是最笨但也最有效的办法,这个人有种特殊的能力,就是对数字有超凡的记忆力,可以轻易记住十万个互不关联的数字。30亿不就是三万个十万嘛。
上面的方法都非常巧妙,但实际上除了最后一种方法以外,都是行不通的。
先从“两段笛管法”着手。我们可以先假定那根较长笛管的重量是一个很大的数,是10的整数次方,这样,两段笛管的重量比值就只取决于较短那段的重量。读者可以看到,这实际就把“两段比值法”化为“石头法”了。
根据中学化学所学过的克原子量,可以知道64克玉笛含有1023个硅原子。如果用所有这些原子的状态来表达信息(比如用一个原子的“有”和“无”来表示0 和1 ),则这些原子可以表达十万亿亿比特的信息,足足够携带我们的那份情报了。但文中两个间谍没有用这种方法,他们设计的方法是用“原子总数”的序列来暗藏情报,这个1023的原子总数,若用十进位数字表示,其位数是23位;若用二进位数字表示,其位数是23除以0.3010(2 的对数),也就是76位左右……仅仅是76位!而30亿比特的信息需要30亿位的数字序列,76位,连零头的零头的零头都不够哩!
此路不通,再另辟蹊径。有人说,我干嘛要把重的那段选成10的整倍数呢,
可以把两段的原子个数都选成非常非常大的素数,使两段的比值是一个循环节为30亿位的循环小数就可以了(循环节必须不能少于这么多位数,否则它就不能表示特定的数列)。好,我们看看这个方法是否行得通。
先复习一点小学数学知识,纯循环小数可化为这样的分数,其分子是一个循环节内的数字;分母是若干个9 ,9 的个数与循环节位数相同(混循环小数化分数的办法略)。比如:无限纯循环小数0.428571428571……循环节是6 位,则化为分数是428571/999999 ,化简后为3/7.非常简单,对不对?唯一的麻烦是:循环节为30亿位的循环小数化成分数后,分子和分母都是30亿位的大数。当然分子分母可能被化简(先不管它到底能化简到什么程度),即约去两者的公约数,这实际是一个数的素性检验问题,没什么复杂的,用试除法就行了,小学生都会算,何况还有运算速度为每秒数万亿次的电脑呢,只是时间稍微长了一些,而且这个时间随着被除数的位数的增加而急剧增加。
到底需多长时间?对于一个10位的数字,电脑可以在1 秒钟内就得出结果,如果是100 位数字呢?那就需要……请你
听好,我以下说的时间值得之于职业数学家的推算,绝对没有错误:即使用今天运算速度最快的电脑,所需时间也需1036年!这还只是对100 位数字的试除,我们的数字可是30亿位!!!
看来,先甭说它们能不能化简,以及能化简到什么程度,单说化简的时间就耗不起呀。但是若不化简,就又回到刚才的情形了,分子分母都是30亿位的数字,若要表示它,原子个数就要达到2 的30亿次方,远远超过一段玉笛中所包含的原子个数。所以此法也走不通。
这两种方法被pass了,现在看看“碱基法”。这倒是没问题的,前面已经说过,30亿位由四个字母表达的数列可以容纳60亿比特的信息。只是,按这个“既定数列”定做的DNA 很可能就不是生物,或者这样说吧,它恰好是感冒病毒的可能性是30亿个碱基的组合数的倒数。读者会不会做排列组合的计算?它是这个30亿位数字的阶乘。具体值就不用计算了吧,反正是一个吓死人的天文数字。所以,非常遗憾,这种方法也得被pass了。
只剩下一种:记忆法。唯独在这儿我们挑不出什么毛病。背诵长达30亿位的数列的确是一个非常累人的活,是一场酷刑,但没人能用有力的理由证明它是不可能的。人的大脑有140 亿个神经细胞,从物理层面上分析,它也能容纳30亿比特的信息。