1700961930
1700961931
现在,假如我们遇见一只白猫,这就有意思了,因为这件事无疑略微证实了“凡不黑的都不是乌鸦”的说法(白猫不黑,白猫也不是乌鸦)。而因为逆否命题的等价性,所以我们似乎也可以说,它同样也略微证实了“乌鸦都是黑的”这个原命题。
1700961932
1700961933
总而言之,“遇见一只白猫”略微增加了“乌鸦都是黑的”的命题可能性。咦,这是真的吗?
1700961934
1700961935
这个悖论由著名的德国逻辑实证论者亨普尔(Carl G. Hempel)提出,他年轻时也曾跟着希尔伯特学过数学。如果你接受这个论断,那么下次导师叫你去野外考察证明例如“昆虫都是六只脚”之类的命题,你大可不必出外风吹雨淋。只要坐在家里观察大量“没有六只脚的都不是昆虫”的事例(比如桌子、椅子、台灯、你自己……),你就可以和在野外实际观察昆虫对这个命题做出同样多的贡献!
1700961936
1700961937
或许,我们对于认识理论的了解还是非常肤浅的。
1700961938
1700961940
Part. 3
1700961941
1700961942
电子计算机是人类有史以来最伟大的发明之一。自诞生那天以来,它已经深入到了我们生活的每一个方面,甚至彻底改变了整个世界的面貌。别的不说,各位正在阅读的本史话,最初便是在一台笔记本电脑上被输入和保存为电子信号的,虽然拿一台现代的PC仅仅做文字编辑可谓大材小用,或者拿Ian Stewart的话来说,算是开着劳斯莱斯送牛奶了。
1700961943
1700961944
回头看计算机的发展,人们往往会慨叹科技的发展一日千里。通常我们把宾夕法尼亚大学1946年的那台ENIAC看成世界上的第一台电子计算机(2) ,这是个异常笨重的大家伙,体积可以装满整个房间,塞满难看的电子管,输入输出都靠打孔的磁带。如果我们把它拿来和现代轻便精致的家庭电脑相比,就好像美女与野兽的区别。不过,从本质上来说,计算机自诞生以来却没有什么大变化,阿兰·图灵为它种下了灵魂,冯·诺伊曼为它雕刻了骨架,别的只是细枝末节罢了!
1700961945
1700961946
1700961947
1700961948
1700961949
量子计算机
1700961950
1700961951
在这个意义上来讲,美女与野兽其实是一样的,外表的色相差异只是一种错觉而已。我们如今所使用的电脑,不管看上去有多精巧复杂,本质上也没有脱出当年图灵和诺伊曼所画好的框框。把所有的计算机简化,它们都是这样一种机器:在一端读入信息数据流,按照特定的算法(有限的内态)来处理它,并在另一端输出结果。奔腾4、80286和ENIAC的区别也只不过在于处理的速度和效率而已。假如有足够的时间和输出空间,同作为图灵机,它们所能做到的事情是一样多的。对于传统的计算机来说,它处理的通常是二进制码信息,1个“比特”(bit,binary digit的缩写)是信息的最小单位,它要么是0,要么是1,对应于电路的开或关。假如一台计算机读入了10个bits的信息,那相当于说它读入了一个10位的2进制数(比方说1010101010),这个数的每一位都是一个确定的0或者1。如果你对计算机稍有认识的话,这些常识似乎是理所当然的。
1700961952
1700961953
但是,接下来就让我们进入神奇的量子世界。一个bit是信息流中的最小单位,这看起来正如一个量子!我们回忆一下走过的路上所见到的那些奇怪景象,量子论最叫人困惑的是什么呢?是不确定性。我们无法肯定地指出一个电子究竟在哪里,我们不知道它是通过了左缝还是右缝,我们不知道薛定谔的猫是死了还是活着。根据量子论的基本方程,所有的可能性都是线性叠加在一起的!电子同时通过了左和右两条缝,薛定谔的猫同时活着和死了。只有当实际观测它的时候,上帝才随机地掷一下骰子,告诉我们一个确定的结果,或者他老人家不掷骰子,而是把我们投影到两个不同的世界中去。
1700961954
1700961955
大家不要忘记,我们的电脑也是由微观的原子组成的,它当然也服从量子定律(事实上所有的机器肯定都是服从量子论的,只不过对于传统的机器来说,它们的工作原理并不主要建立在量子效应上)。假如我们的信息由一个个电子来传输,我们规定,当一个电子是“左旋”的时候,它代表了0,当它是“右旋”的时候,则代表1。现在问题来了,当我们的电子到达时,它是处于量子叠加态的。这岂不是说,它同时代表了0和1?
1700961956
1700961957
这就对了,在我们的量子计算机里,一个bit不仅只有0或者1的可能性,它更可以表示一个0和1的叠加!一个“比特”可以同时记录0和1,我们把它称作一个“量子比特”(qubit)。假如我们的量子计算机读入了一个10qubits的信息,所得到的就不仅仅是一个10位的二进制数了,事实上,因为每个bit都处在0和1的叠加态,我们的计算机所处理的是210 个10位数的叠加!
1700961958
1700961959
换句话说,同样是读入10bits的信息,传统的计算机只能处理1个10位的二进制数,而如果是量子计算机,则可以同时处理210 个这样的数!
1700961960
1700961961
利用量子演化来进行某种图灵机式的计算早在70年代和80年代初便由Bennett、Benioff等人进行了初步的讨论。到了1982年,那位极富传奇色彩的美国物理学家理查德·费曼(Richard Feynman)注意到,当我们试图使用计算机来模拟某些物理过程,例如量子叠加的时候,计算量会随着模拟对象的增加而指数式地增长,使得传统的模拟很快变得不可能。费曼并未因此感到气馁,相反,他敏锐地想到,也许我们的计算机可以使用实际的量子过程来模拟物理现象!如果说模拟一个“叠加”需要很大的计算量的话,为什么不用叠加本身去模拟它呢?每一个叠加都是一个不同的计算,当所有这些计算都最终完成之后,我们再对它进行某种幺正运算,把一个最终我们需要的答案投影到输出中去。费曼猜想,这在理论上是可行的,而他的确猜对了!
1700961962
1700961963
终于到了1985年,我们那位在埃弗莱特的谆谆教导和多宇宙论的熏陶下成长起来的大卫·德义奇闪亮登场了。他仿照图灵当年走的老路子,成功地证明了一台通用的量子计算机是可能的(3) ,这样一来,一切形式的量子计算便也都能够实现。德义奇的这个证明意义重大,他从理论上奠定了量子计算机的实现基础,一扇全新的门被打开了。
1700961964
1700961965
不过,说了那么多,一台量子计算机到底有什么好处呢?
1700961966
1700961967
德义奇证明,量子计算机无法实现超越算法的任务,也就是说,它无法比普通的图灵机做得更多。但他同时证明,它将具有比传统的计算机大得多的效率,用术语来讲,执行同一任务时它所要求的复杂性(complexity)要低得多。一言以蔽之,量子计算机虽然没法做得更多,但同样的任务却能做得更快更好!理由是显而易见的,量子计算机执行的是一种并行计算。正如我们前面举的例子,当一个10qubits的信息被处理时,量子计算机实际上操作了210 个态!
1700961968
1700961969
1700961970
1700961971
1700961972
大数分解加密的安全性
1700961973
1700961974
在如今这个信息时代,网上交易和电子商务的浪潮正席卷全球,从政府至平民百姓,都越来越依赖电脑和网络系统。与此同时,电子安全的问题也显得越来越严峻,谁都不想黑客们大摇大摆地破解你的密码,侵入你的系统篡改你的资料,然后把你银行里的存款提得精光,这就需要我们对隐私资料执行严格的加密保护。目前流行的加密算法不少,很多都是依赖于这样一个靠山,也即所谓的“大数不可分解性”。大家中学里都苦练过因式分解,也做过质因数分解的练习,比如把15这个数字分解成它的质因数的乘积,我们就会得到15=5×3这样一个唯一的答案。
1700961975
1700961976
问题是,分解15看起来很简单,但如果要分解一个很大很大的数,我们所遭遇到的困难就变得几乎不可克服了。比如,把10949769651859分解成它的质因数的乘积,我们该怎么做呢?糟糕的是,在解决这种问题上,我们还没有发现一种有效的算法。一种笨办法就是用所有已知的质数去一个一个地试,最后我们会发现10949769651859=4220851×2594209(4) ,但这是异常低效的。更遗憾的是,随着数字的加大,这种方法所费的时间呈现指数式的增长!每当目标增加一位数,我们就要多费3倍多的时间来分解它,很快我们就会发现,就算计算时间超过宇宙的年龄,我们也无法完成这个任务。当然我们可以改进我们的算法,但目前所知最好的算法,它所需的复杂性也只不过比指数性的增长稍好,仍未达到多项式的要求(5) 。
1700961977
1700961978
所以,如果我们用一个大数来保护我们的秘密,只有当这个大数被成功分解时才会泄密,我们应当是可以感觉非常安全的。因为从上面的分析可以看出,想使用“暴力”方法,也就是穷举法来破解这样的密码几乎是不可能的。虽然我们的处理器速度每隔18个月就翻倍,但也远远追不上安全性的增长。只要给我们的大数增加一两位数,就可以保好几年的平安。目前最流行的一些加密术,比如公钥的RSA算法正是建筑在这个基础之上。
1700961979
[
上一页 ]
[ :1.70096193e+09 ]
[
下一页 ]