第五章(第2/2页)

“比如,考虑一下数字的分解。我们是怎么分解数字的?虽然可以用到一些技巧,但基本的方法还是试错法。如果我们想确定8的因子,我们就用数字去除它。我们知道1可以除尽——所有的整数都可以被1除尽。那么2怎么样?是的,2也是个因子;用它除8得4。3呢?不行,除不尽。4呢?可以,4除8得2。这就是我们分解数字的方法:用穷举运算,依次检验每一个可能的因子。但是当数字变大的时候,因子的数目也随之变大。今年年初,一个由1600台计算机组成的网络成功找出了一个129位数的所有因子——这是人类迄今分解出的最大数字,整个过程耗时八个月。

“想象一台量子计算机——一台能和所有平行宇宙中的其他计算机联网的量子计算机。再想象一个程序,它能在分解大数时,同时尝试所有可能的因子。AT&T贝尔实验室的数学家彼得·肖尔编写了一个程序,真的做到了这一点。它在一个宇宙中检验一个可能的因子,并在大量的平行宇宙中同时找出一个大数的所有因子。程序的输出结果以干涉图形的形式表示,并输送到一块摄影胶片上。肖尔算法可以使那些不是因子的数字在干涉图形中相互抵消、成为阴影。计算的结果是一幅明暗相间的图案,类似条码,你能从中读出哪些数字才是那个大数的因子。另外,由于运算是在平行宇宙中进行的,当算法在我们的宇宙中检验一个数字,其他所有的数字也都得到了检验,并接着得出结果。只要我们的计算机计算的不是什么特殊的数字,得到结果就几乎是一瞬间的事。普通计算机花八个月做的事,量子计算机只要几秒就能办到。”

“但量子计算机这东西是不存在的。”凯尔说。

帕皮努冲他点了点头:“对,至少目前还不存在,但总有一天会有人造出一台量子计算机。到那时,我们就什么都知道了。”

  1. 计算机术语,是信息量单位,由英文BIT音译而来。——编者注​​​​​