几个学生吃吃窃笑,帕皮努也面露微笑。
“好,的确有个办法。”教授接着说道,“大家都知道那句老话吧?‘两个脑袋总比一个强。’好了,如果我们的凯尔——就是在这个宇宙中从西边绕行、解决问题A的这个——能和另一个凯尔联手——就是在平行宇宙中从东边绕行、解决问题B的那个——那么他就能知道两个问题的答案了。”
有人举手。
“葛兰妲?”
“可是您刚才谈到光子和缝隙的时候说过,只有当我们不知道光子在每个宇宙中各自通过哪一条缝隙时,两个宇宙才有可能重新组合。”
“完全正确。可是,如果我们能够设计一种方法,使得凯尔在这个宇宙中走任何一条路都没有分别——实际上,用了这种方法之后,连凯尔自己都不知道他走了哪条路,也没有人会在半路上看见他——如果能做到这样,那么到最后,两个宇宙就可能重新组合。在这个复合的宇宙里,凯尔会知道两个问题的答案,虽然他实际上只有解决一个问题的时间。”
说到这儿,帕皮努对学生咧嘴笑了。
“欢迎大家,进入量子计算的世界。”他停顿了片刻,“当然了,对凯尔来说,宇宙的数目实际多于两个——他可能待在家里,也可能开车上班,还可能叫计程车。同样的道理,在灯泡实验里,缝隙的数目也可能是十几道甚至几百道。好了,我们假设灯泡里发射出来的每一个光子都代表一比特信息。记住,所有的计算都是在升级了的算盘上进行的;计算的过程,实际就是在把东西四处移动,不管移动的是石块还是原子、电子还是光子。但如果这些东西中的每一件都可以在同一个时刻、不同的平行宇宙中处于不同的位置,那么异常复杂的计算问题,就可以非常、非常迅速地得到解决。
“比如,考虑一下数字的分解。我们是怎么分解数字的?虽然可以用到一些技巧,但基本的方法还是试错法。如果我们想确定8的因子,我们就用数字去除它。我们知道1可以除尽——所有的整数都可以被1除尽。那么2怎么样?是的,2也是个因子;用它除8得4。3呢?不行,除不尽。4呢?可以,4除8得2。这就是我们分解数字的方法:用穷举运算,依次检验每一个可能的因子。但是当数字变大的时候,因子的数目也随之变大。今年年初,一个由1600台计算机组成的网络成功找出了一个129位数的所有因子——这是人类迄今分解出的最大数字,整个过程耗时八个月。
“想象一台量子计算机——一台能和所有平行宇宙中的其他计算机联网的量子计算机。再想象一个程序,它能在分解大数时,同时尝试所有可能的因子。AT&T贝尔实验室的数学家彼得·肖尔编写了一个程序,真的做到了这一点。它在一个宇宙中检验一个可能的因子,并在大量的平行宇宙中同时找出一个大数的所有因子。程序的输出结果以干涉图形的形式表示,并输送到一块摄影胶片上。肖尔算法可以使那些不是因子的数字在干涉图形中相互抵消、成为阴影。计算的结果是一幅明暗相间的图案,类似条码,你能从中读出哪些数字才是那个大数的因子。另外,由于运算是在平行宇宙中进行的,当算法在我们的宇宙中检验一个数字,其他所有的数字也都得到了检验,并接着得出结果。只要我们的计算机计算的不是什么特殊的数字,得到结果就几乎是一瞬间的事。普通计算机花八个月做的事,量子计算机只要几秒就能办到。”
“但量子计算机这东西是不存在的。”凯尔说。
帕皮努冲他点了点头:“对,至少目前还不存在,但总有一天会有人造出一台量子计算机。到那时,我们就什么都知道了。”
<ol><li>
计算机术语,是信息量单位,由英文BIT音译而来。——编者注
</li> </ol>