量子那些事儿 关注
手机版

量子计算

  1. 云栖社区>
  2. 量子那些事儿>
  3. 博客>
  4. 正文

量子计算

雪花又一年 2018-05-04 13:33:00 浏览412 评论0

摘要: 你知道人类为什么采用十进制吗? 最常见的 10 进制,现在普遍认为它源于“扳着指头数数”——10 根指头数完一遍就在地上放个石头——但这种最简单的计算工具还能得到不同的进位制。比如数完右手五指就弯曲左手的一根指头,再数右手。

你知道人类为什么采用十进制吗?


最常见的 10 进制,现在普遍认为它源于“扳着指头数数”——10 根指头数完一遍就在地上放个石头——但这种最简单的计算工具还能得到不同的进位制。比如数完右手五指就弯曲左手的一根指头,再数右手。这种做法往往和 10 进制结合起来成为混合进制,即用 5 进制表示较小的数,用 10 进制表示较大的数,典型的比如中国人的筹数和算盘,玛雅数字混合了 5 进制和 20 进制,是更加彻底的例子。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

筹数的竖式和横式表示法,以及 1069 的两种表示法,虚线框表示空位,代表 0

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

玛雅数字的 20 个符号,可以视为两手计数的完全写照

又或者用左手的大拇指在其余四指的三个指节上依次点击,这样可以数到 12,腾出来右手还可以清点货物,所以 12 进制非常多见于商品计数,比如 1 打有 12 个、1 先令等于 12 便士;12 又是一个“高合成数”,2、3、4、6都是它的因数,很容易均分,因此又常见于度量衡,比如 1 英尺等于 12 英寸、钟表有 12 个刻度;另外 1 个地球的公转周期恰好接近于 12 个月球公转周期,这让 12 进制在历法上有了某种神圣性,衍生出了黄道 12 宫和 12 地支,这些都让 12 进制的现实应用仅次于 10 进制。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

威尼斯在 15 世纪末建造的圣马可时钟塔,最高一层是天文钟,指示了太阳在黄道上的位置


还有清华大学操场上那个日晷:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=
中国人很早就发展出了完备的计数系统、算数方法,却没有进一步发展,到最后却是西方人先发明了计算机。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

西方人的逆袭




中国人在计算上的优势一直都很明显,算盘和筹算的不断改进,让这种优势越拉越大。


然而,阿拉伯数字的传入,却让天平出现了变化。


13世纪初,中世纪最伟大的数学家,意大利的斐波那契(Leonardo Fibonacci,约1170-约1250)出现了。他在北非经商时学会了“阿拉伯数字”,写成一本《计算之书》(liber abaci,直译“算盘书”),让欧洲人有了进位的概念。


阿拉伯数字不但取代了罗马数字,还取代了罗马算盘,因为阿拉伯数字从0到9都设立了单独的符号,借此开发出了一套纸上列竖式的算法,千变万化一目了然,又便于核对,到16世纪就占据了压倒性的优势。


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

▍《玛格丽塔哲学书》(Margarita philosophica)中的插图,绘于1503年,左边使用阿拉伯数字的Algorist正用胜利的表情看着右边使用算盘的Abacist


阿拉伯数字将罗马数字和罗马算盘逐出舞台之后,让算术关系变得更加清晰,在近代以来的巨大变革中,欧洲的计算工具走上了完全不同的发展道路。


一个重要的信号,是查询式计算工具的出现。最典型的是苏格兰数学家约翰•纳皮尔(John Napier,1550-1617)发明的“纳皮尔的骨头”(Napier's bones)。这套工具主要用来计算乘除法,计算时先用算码凑成一个因数,再根据行号读出与另一个因数每一位的乘积,最后在纸上相加,本质上就是一副活字九九表,如果加入其它扩充的算码还可以用来开方。


之后的三个多世纪里,它不断改良,是近代早期欧洲最流行的计算工具,并曾东传中国,被清代数学家当作筹算的分支。


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

▍纳皮尔的骨头


但约翰•纳皮尔的数学贡献不只是一副“骨头”,他还是对数概念的提出人,这直接引出了另一种沿用至今的计算工具——计算尺。


17世纪的大不列颠开始对外殖民扩张,航海、测绘、天文定位都出现了难以完成的计算需求,而对数可以化幂运算为乘除法、化乘除法为加减法,法国数学家和天文学家拉普拉斯(Pierre Simon Laplace,1749-1827)曾赞叹:“对数,可以缩短计算时间,在实效上等于把天文学家的寿命延长了许多倍。”


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

▍如同乘法表,对数表也是一种查询式计算工具,但在电子计算机发明以前只有少数研究机构才有实力算出这二郎神都会看花眼的东西


1620年到1630年间,牛津大学和剑桥大学根据纳皮尔的对数原理,发明了更方便的滑尺,分直形和圆形两种,可通过对齐尺子上的刻度查询计算结果——这就是中文“对数”一词的由来。


随后的两个世纪里,工程师和数学家不断为计算尺引入新的刻度,并添加了滑动的游标,发展成现代的多相算尺,可以进行加减法之外所有的算术运算,以及三角函数等超越计算,不同工程领域还常常研发出自己的专业型号。


20世纪70年代出现电子科学计算器以前,计算尺都是工程师的身份象征。


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

▍几种计算尺


查询式计算工具蓬勃发展的同时,精密仪器制造业也从15世纪起崛起发展,最初只是一些商业城市用自鸣钟楼统一作息,以适应日趋工厂化的制造业,到17世纪发展成更加精密的座钟和怀表。


钟表指针的齿轮转动天然地具有进位功能。1642年,法国数学家、物理学家和化学家帕斯卡(Blaise Pascal,1623-1662)借此设计了一台“帕斯卡计算器”(Pascal's calculator)。长方形的黄铜盒子上开有一列读数窗,下面对应着一行带辐条和指针的齿轮。操作时先像拨盘电话一样逐位输入一个加数,这将显示在上方的读数窗里;再用同样的方式输入另一个加数,读数窗里就会显示出和了。


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

▍现存帕斯卡计算器之一,制作于1942年,现存法国工艺美术馆


帕斯卡计算器虽然在功能上远远不及算筹和算盘,却是一次彻底的革命——算筹和算盘本身不包含任何算法,只能存储计算的中间结果,操作依赖熟记指令的人,本质上只是寄存器。帕斯卡计算器却用内部的齿轮机构预存了算法,操作者完全不需要知道计算方法就能操作。


这才是真正的计算器,而不止是计算用的工具。


尽管占有许多历史第一,但帕斯卡的计算器并没有充分推广,他的设计初衷只是帮助父亲计算税收,造价非常高昂,最后沦为有钱人的机械玩具,前后只卖出约20件。


与帕斯卡类似,德国大数学家、哲学家莱布尼兹(Gottfried Wilhelm Leibniz,1646-1716)也对机械化的计算工具颇有兴趣,他在1672年到1694年之间发明了一种“步进计算器”(Stepped Reckoner),采用了他独创的“莱布尼兹轮”(Leibniz wheel),可以控制齿轮只转动需要的角度。这产生了相当复杂的运算能力,除了普通的加减法意外,还能将两个8位数字相乘为一个16位数字,或者用一个16位的数字除以一个8位数字。


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

▍莱布尼兹两件步进计算器中的一件


作为人类历史上第一件能实现四则运算的计算器,造价高昂的步进计算器也没有获得普遍的推广,当时只制作了两件,现存一件。但这已经奠定了欧洲机械计算器的研发基础。


18世纪,功能日渐强大的机械计算器在欧洲雨后春笋般的涌现出来,比如下面这台从莱布尼兹的设计中衍生出来的计算器就可以切换多种进位制。


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

▍德国数学家Johann Helfrich Müller设计的盘形计算器


从18世纪开始,另一种强劲的力量加入到计算器的发明之中——商业。


1820年,第一个结实可靠,能胜任日常使用的法国“四则计算器”(Arithmometer)发明了,它在1851年投产。在它的带动下,一大批台式机算器进入了会计师的办公室,许多品牌一直沿用到20世纪。


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

▍一些计算器


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

▍19世纪主要台式计算器的研发和生产型号,黄色部分表示专利申请时间,蓝色部分表示投入生产时间


不过,仅就实用价值来看,这些新奇的机械计算器还不能压倒算盘,但就在四则计算器获得专利的同时,英国数学家和工程师查尔斯•巴贝奇(Charles Babbage,1791-1871)的脑海中已经有了现代计算机的雏形。


他首先在1822年设计了差分机(Difference engine),旨在将计算到印刷的过程全部自动化,全面排除人为误差。它由英国政府出资建造,大约有2万5千个零件,重4吨,用蒸汽机驱动,最高可以读写16位数,是人类踏进计算机科学的重大起步,但因为大量精密零件制造困难,从1822到1832年的十年间只完成了1/7,最终1万2千多个还没用到的精密零件都被熔解报废。



▍差分机1号完成的1/7


失去政府支持后,巴贝奇继续设计了更加精密的分析机(Analytical Engine),能用多项式展开的方法计算对数和三角函数,大约有30米长、10米宽,内存已有20.7kB,用打孔纸带输入,完成类似汇编语言的程序指令,是一种图灵完备的通用计算机。


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

▍分析机部分组件的实验模型,巴贝奇自制,现藏伦敦科学博物馆


可惜,同样出于资金和技术的原因,这部超越时代的机器并没能制作出来,但给后世开辟了全新的研发思路。19世纪晚期,打孔卡和真空管等关键技术相继问世,大大降低了完成同样功能所需的资金和体积,终于在1941年,踏过几个世纪的漫长征途,第一台数字电子计算机问世了。


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

▍阿塔纳索夫-贝瑞计算机(Atanasoff–Berry Computer),世界上第一台电子数字计算机,制造于美国爱荷华州立大学


原理上,一切电子设备的功能都可以由机械设备同样完成,算盘与计算机的差距就只是一套代替人手的“拨珠器”。


然而,中国很早就发展出了完备的记数系统和算术方法,足以抵御外来数学体系的渗透,但又没有产生更进一步的应用需求,让数学工具向着更复杂的方向发展。


今日,电子计算机颠覆了每个现代人的生活,算盘却只能被当做传统文化的一部分,在中小学传承。


那么如今说的量子计算是什么呢?


量子计算是一种依照量子力学理论进行的新型计算,量子计算的基础和原理以及重要量子算法为在计算速度上超越图灵机模型提供了可能。


量子计算 (quantum computation) 的概念最早由IBM的科学家R. Landauer及C.Bennett于70年代提出。他们主要探讨的是计算过程中诸如自由能(free energy)、信息(informations)与可逆性(reversibility)之间的关系。80年代初期,阿岗国家实验室的P.Benioff首先提出二能阶的量子系统可以用来仿真数字计算;稍后费因曼也对这个问题产生兴趣而着手研究,并在1981年于麻省理工学院举行的First Conference on Physics of Computation中给了一场演讲,勾勒出以量子现象实现计算的愿景。1985年,牛津大学的D.Deutsch提出量子图灵机(quantum Turing machine)的概念,量子计算才开始具备了数学的基本型式。然而上述的量子计算研究多半局限于探讨计算的物理本质,还停留在相当抽象的层次,尚未进一步跨入发展算法的阶段。


量子态的叠加定理与量子纠缠产生了巨大的计算能力。普通计算机中的2位寄存器在某一时间仅能存储4个二进制数(00、01、10、11)中的一个,而量子计算机中的2位量子位(qubit)寄存器可同时存储这四个数,因为每一个量子比特可表示两个值。如果有更多量子比特的话,计算能力就呈指数级提高。


量子位(qubit)是量子计算的理论基石。在常规计算机中,信息单元用二进制的 1 个位来表示,它不是处于“ 0” 态就是处于“ 1” 态. 在二进制量子计算机中,信息单元称为量子位,它除了处于“ 0” 态或“ 1” 态外,还可处于叠加态(superposition)。 叠加态是“ 0” 态和“ 1” 态的任意线性叠加,它既可以是“ 0” 态又可以是“ 1” 态,“ 0” 态和“ 1” 态各以一定的概率同时存在. 通过测量或与其它物体发生相互作用而呈现出“ 0” 态或 “ 1” 态.任何两态的量子系统都可用来实现量子位,例如氢原子中的电子的基态(ground state)和第 1 激发态(firstex cited state)、 质子自旋在任意方向的+ 1/ 2 分量和- 1/ 2 分量、 圆偏振光的左旋和右旋等。


一个量子系统包含若干粒子,这些粒子按照量子力学的规律运动,称此系统处于态空间的某种量子态.态空间由多个本征态(eigenstate)(即基本的量子态)构成,基本量子态简称基本态(basic state)或基矢(basic vector) . 态空间可用Hilbert空间(线性复向量空间)来表述,即Hilbert 空间可以表述量子系统的各种可能的量子态.为了便于表示和运算,Dirac提出用符号 |x〉来表示量子态,|x〉是一个列向量,称为ket ;它的共轭转置(conjugate t ranspose) 用〈x |表示,〈x |是一个行向量,称为bra.一个量子位的叠加态可用二维Hilbert 空间(即二维复向量空间)的单位向量 〉来描述,其简化的示意图如下图所示.

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

一个量子位的叠加态的示意图:Bloch sphere


量子态的叠加定理


把量子比特考虑成磁场中的电子。电子的旋转可能与磁场一致,称为上旋转状态,或者与磁场相反,称为下旋状态。通过提供脉冲能量使电子旋转从一种状态变为两种状态,例如从激光。让我们假设我们用一单位激光能量。但是假设我们仅用半单位的激光能量并完全消除外界对微粒的影响将会怎样呢?根据量子理论,微粒将进入叠加状态,即同时处于两种状态下,每一个量子比特呈现重叠状态0和1。因此量子计算机的计算数是2的n次方,n是量子比特的位数。量子计算机如果有500个量子比特,就在每一步作2^500次运算。这是一个可怕的数,2^500比地球上已知的原子数还要多(这是真正的并行处理,当今的经典计算机,所谓的并行处理器仍然是一次只做一件事情)。但是这些微粒如何相互作用呢?他们通过量子纠缠来做。


量子纠缠


在某点上相互作用的微粒(像光子、电子)之间具有一种关系,能够成对的纠缠在一起,这一过程被称为相关性。知道了纠缠在一起的一个微粒的状态是上或下的话,它同伴的旋转是在其相反的方向上。令人惊奇的是,由于叠加现象,被测定的微粒没有单独的旋转方向,而是同时成对的处于上旋和下旋状态。被测微粒的旋转状态由测量时间和与其相关的微粒决定,其相关微粒同时处于相反的旋转方向。这一真实的现象(爱因斯坦认为两个粒子自从分开的那一瞬间就决定了各自的自旋方向,他试图通过EPR佯谬来质疑量子论,但验证贝尔不等式的实验证明爱因斯坦错了),至今没有任何恰当的理论可以解释,只是简单的被接受着。量子纠缠就是无论来自同一系统的粒子之间有多远的距离都能同时相互作用(不受光速限制)。无论相互作用的微粒之间相距多远,他们都将相互缠在一起直到被分开。2014年初,荷兰代尔夫特理工大学(TU Delft) Kavli Institute of Nanoscience量子计算团队在实验室中实现了这种信息的“0延迟”传递,信息传递距离为3米。


原文发布时间为:2016-03-17
本文作者:尤文龙
本文来源:量子趣谈,如需转载请联系原作者。

【云栖快讯】阿里云栖开发者沙龙(Java技术专场)火热来袭!快来报名参与吧!  详情请点击

网友评论

雪花又一年
文章1321篇 | 关注45
关注
快速、完全托管的TB/PB级数据仓库解决方案,向用户提供了完善的数据导入方案以及多种经典的分... 查看详情
阿里云流计算(Aliyun StreamCompute)是运行在阿里云平台上的流式大数据分析... 查看详情
提供一种性能卓越、稳定、安全、便捷的计算服务,帮助您快速构建处理能力出色的应用,解放计算给服... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
双12

双12