看得见的量子计算
一页读懂 · 九个可以动手的实验

量子计算,
拆开来看

量子计算机不是一台更快的普通电脑,它换了一种存储和处理信息的方式。这一页不推公式,从一枚硬币出发,用箭头、路径和柱子,一步步搭出一个真正的量子算法。

每一课只多一个新概念,并且都建立在上一课的基础上。建议按顺序读:先看文字,再在实验台上动手,最后看“要点”。全程约 30 分钟。

P(0)
P(1)
一个量子比特:箭头指向哪里,决定了测量时得到 0 和 1 的概率。读完第 3 课,你就能看懂这张图。
第 1 课 · 起点

从开关到旋转的硬币

普通电脑里的一切,照片、文字、视频,最终都存成一长串 0 和 1。每一位叫一个比特(bit)。比特就像一个开关:要么关(0),要么开(1),任何时刻都是确定的。

量子计算机的基本单位叫量子比特(qubit)。先打个比方:它像一枚在桌上旋转的硬币。转着的时候,说不清它是正面还是反面,它同时带着两面的成分;只有拍下去看一眼,它才变成确定的一面。这个“看一眼”,在量子力学里叫测量。

实验 1比特和量子比特,各点一下

经典比特

点它切换。无论何时看,它都只有一个确定的值。

量子比特(比喻)

?

旋转时同时带着 0 和 1 的成分。测量后才倒成确定的一面。

硬币正在旋转:此刻它既不是 0,也不是 1。

这个比喻哪里不准

真实的旋转硬币,每一刻其实都有确定的朝向,只是我们没看清。量子比特不一样:在测量之前,它确实没有确定的 0 或 1,这不是“我们不知道”,而是“它本来就没定”。

更重要的是,量子比特的两种成分带有正负号,正负可以互相抵消,硬币完全没有这种性质。第 5 课会看到,这正是量子计算的力量来源。所以硬币只是帮你入门,下一课换一种更准确的画法。

要点

比特任何时刻只有一个确定的值。量子比特在测量前可以同时带有 0 和 1 的成分,测量时才变成确定的 0 或 1。

第 2 课 · 更准确的画法

叠加:把量子比特画成一根箭头

画一个圆,从圆心伸出一根长度为 1 的箭头。规定:箭头朝右,代表确定的 |0⟩;箭头朝上,代表确定的 |1⟩。

符号 | ⟩ 只是一个标签,表示“这是一个量子状态”,|0⟩ 读作“状态 0”就行。

箭头斜着指,就是 0 和 1 的叠加。给箭头打两束光,它在横轴上的影子长度记作 a,在竖轴上的影子长度记作 b。这两个数叫振幅。于是状态可以写成:

|ψ⟩ = a|0⟩ + b|1⟩

意思就是“含有 a 份的 0 和 b 份的 1”(|ψ⟩ 读作“psi”,是状态的名字)。

实验 2拖动箭头,看两个影子怎么变
振幅数值平方 a b
a² + b² = 1.00,无论角度怎么变,永远是 1

为什么 a² + b² 总等于 1?看图:两个影子和箭头正好围成一个直角三角形,箭头是斜边,长度为 1。这就是勾股定理。这个“平方和等于 1”马上会在下一课派上大用场。

这根箭头也不完全是比喻。光子(光的最小单位)的偏振方向就可以这样画:水平偏振当作 |0⟩,竖直偏振当作 |1⟩,斜着 45° 的偏振就是两者等量的叠加。

要点

量子比特的状态 = 一根长度为 1 的箭头。它在两个方向上的影子 a、b 叫振幅,总满足 a² + b² = 1。箭头斜着就是叠加。

第 3 课 · 怎么读出结果

测量:箭头倒向一边

箭头本身是看不见的。我们能做的只有测量,而一次测量只会给出一个答案:0 或 1。

  1. 结果是随机的,但概率由箭头决定。得到 0 的概率是 a²,得到 1 的概率是 b²。上一课的 a² + b² = 1,正好保证两个概率加起来是 100%。这条规则叫玻恩规则。

  2. 测量会改变状态。测完之后,箭头不再斜着,而是直接倒在得到的那根轴上,这叫塌缩。原来的 a 和 b 就此丢失,之后再测多少次,都只会得到同一个结果。

拿光子来说:测量就像让它穿过一片水平方向的偏振片,穿过去记为 0,被挡住记为 1。45° 偏振的光子,有一半机会穿过去;而穿过去的光子,偏振就变成了水平,这就是塌缩。

实验 3准备一个量子比特,然后测量它
P(0)
P(1)

拖动滑块准备一个量子比特,再试试测量。

那怎么才能知道一根箭头原来的角度?只能把同样的量子比特重新准备很多份,每份测一次,看 0 和 1 各占多少。注意是重新准备,而不是复制:量子力学不允许把一个未知的量子状态原样复制一份,这叫不可克隆定理。

试一试:拖到 45°,准备 100 个,大约一半 0、一半 1。拖到 30°,0 的概率是 75%。拖到 0°,永远是 0,这时叠加消失,量子比特就和普通比特一样了。
要点

测量只给出 0 或 1,概率是振幅的平方。测完箭头塌缩,原来的振幅信息丢失。要了解一个状态,只能反复准备、反复测量,看统计结果。

第 4 课 · 怎么改变量子比特

量子门:对着镜子翻转箭头

普通电脑用“与”“或”“非”这样的逻辑门改变比特。量子计算机用量子门改变量子比特,在我们的图里,就是让箭头换个方向。量子门有两条规矩:

  1. 箭头长度始终是 1。否则概率加起来就不是 100% 了。

  2. 每一步都能倒着做回去。量子门不会丢失信息(会丢信息的是测量)。

先认识一个新情况:箭头也可以指向左边或下面。这时振幅是负数,比如 −0.71。负号不影响概率,因为 (−0.71)² 和 0.71² 一样都是 0.5。看起来负号没用,但它是下一课的主角。

最常用的三个量子门,在这张图里恰好都像一面镜子:箭头以红色虚线为镜面,翻到对面去。

X

X 门(翻面):把 |0⟩ 和 |1⟩ 对调,相当于经典的“非”门。镜子是 45° 斜线。

Z

Z 门(改符号):把 |1⟩ 那一份的振幅变号,0.71 变成 −0.71。镜子是横轴。它不改变任何概率。

H

H 门(Hadamard 门,对半分):把 |0⟩ 变成 0.71|0⟩ + 0.71|1⟩,把 |1⟩ 变成 0.71|0⟩ − 0.71|1⟩。镜子是 22.5° 斜线。

这里的 0.71 是 1/√2 的近似值,0.71² ≈ 0.5,也就是“一半”。

实验 4按下量子门,看箭头怎么翻

P(0)
P(1)
按过的门:(无)

试一试:① 从 |0⟩ 按一次 H,得到一半一半的叠加;再按一次 H,又回到确定的 |0⟩。② 回到 |0⟩,按 H → Z → H,结果变成确定的 |1⟩。Z 明明不改变概率,为什么夹在中间就把结果变了?下一课揭晓。
要点

量子门改变箭头方向但不改变长度,而且可以撤销。X 对调 0 和 1,Z 改变 |1⟩ 的符号,H 制造(或消除)一半一半的叠加。振幅可以是负数。

第 5 课 · 核心窍门

干涉:正负号的抵消

为什么按两次 H 会回到 |0⟩?换个角度看:把 H 门想成一个岔路口,每经过一次,状态就分成“去 |0⟩”和“去 |1⟩”两条路。两次 H,就是两层岔路。

沿着这些路算振幅,只需要两条规则:

  1. 沿一条路走,振幅相乘。每过一个 H 门乘 0.71;其中只有“从 |1⟩ 走到 |1⟩”这一种走法要额外乘 −1(这就是上一课 H 门定义里的那个减号)。

  2. 几条路到达同一个结果,振幅相加。加完再平方,才是这个结果的概率。

因为振幅能正能负,相加时就有两种情况:同号相加会变大,叫相长干涉;异号相加会抵消,叫相消干涉。这和两列水波相遇一样:波峰叠波峰,浪更高;波峰遇波谷,水面变平。

实验 5两次 H 门的所有路径
正振幅的路负振幅的路(虚线)线上的数 = 走到这里累计的振幅

硬币的比喻在这里彻底失效了。普通的概率只能是正数,几种可能性加在一起只会更大,永远不会抵消。正是“振幅可以为负”这一点,让量子计算机和“随机抛硬币”有了本质区别。

量子算法的核心,就是精心安排这些路径:让通向错误答案的路径互相抵消,让通向正确答案的路径互相加强。最后一测量,正确答案就有很大概率出现。第 8 课会看到一个完整的例子。

要点

振幅沿路径相乘、在终点相加。正负抵消叫相消干涉,同号加强叫相长干涉。量子算法就是靠干涉,把概率集中到正确答案上。

第 6 课 · 从一个到很多个

多个量子比特:数量翻倍再翻倍

两个量子比特放在一起,测量结果可能有 4 种:|00⟩、|01⟩、|10⟩、|11⟩。左边那位是第一个量子比特,右边那位是第二个,比如 |01⟩ 表示“第一个是 0,第二个是 1”。

要完整描述这两个量子比特,就要给这 4 种结果各配一个振幅,规则和单个时一样:平方是概率,所有平方加起来等于 1。

每多一个量子比特,可能的结果就翻一倍:3 个有 8 种,4 个有 16 种,n 个有 2ⁿ 种,振幅也就有 2ⁿ 个。

实验 6拖动滑块,增加量子比特
描述它需要的振幅个数(2ⁿ)
用普通电脑完整存下,约需内存

    内存按最直接的存法估算:每个振幅约 16 字节(一般情况下振幅是复数,要存两个小数)。

    这就是普通电脑很难模拟量子计算机的原因:每多一个量子比特,要存的数字就翻一倍。几十个量子比特,就足以让最大的超级计算机吃力。

    不过要当心一个流行说法:“n 个量子比特能同时计算 2ⁿ 个答案”。振幅确实有 2ⁿ 个,可是第 3 课说过,测量只会给出一个结果,其余的全部丢失。想利用这片巨大的空间,只能靠第 5 课的干涉。

    要点

    n 个量子比特有 2ⁿ 种可能结果,需要 2ⁿ 个振幅来描述,普通电脑模拟它的代价随 n 指数增长。但测量一次仍然只得到一个结果。

    第 7 课 · 多个量子比特之间

    纠缠:两个量子比特绑在一起

    先学一个新的门:CNOT

    前面的门都只作用在一个量子比特上。CNOT(受控非门)作用在两个量子比特上,一个叫控制位 A,一个叫目标位 B。规则很简单:如果 A 是 1,就把 B 翻面;如果 A 是 0,B 不动。

    如果 A 是确定的 0 或 1,CNOT 就是个普通的条件开关。有趣的是 A 处在叠加中的时候:A 同时带着 0 和 1 的成分,于是“翻”和“不翻”两种情况同时发生。下面一步一步看。

    实验 7a用 H 和 CNOT 制造纠缠

    最后的状态 0.71|00⟩ + 0.71|11⟩ 里,只剩“都是 0”和“都是 1”两种可能。它没法拆成“A 自己的一根箭头”加上“B 自己的一根箭头”:单说 A 是什么状态,已经没有意义了。这就是纠缠。

    把它们分开,再测量

    把这对纠缠的量子比特,一个送到北京,一个送到上海,两边同时测量。和“两枚互不相关的硬币”对比一下:

    实验 7b两地同时测量
    ?
    北京的 A
    ∿ 纠缠 ∿
    ?
    上海的 B

    点击测量,看看两边的结果。

    纠缠的一对:每一边单独看,都是 50/50 的随机,可两边的结果永远相同。互不相关的两个:四种组合都会出现。

    会不会只是事先约好了?

    你可能会想:这和把一双手套分装进两个盒子有什么区别?打开一个看到左手,自然知道另一个是右手,结果早在出发前就定了。

    只沿同一个方向测量,确实分辨不出来。1964 年,物理学家贝尔想出了检验办法:让两边各自随机换用不同的测量方向(相当于把第 3 课的偏振片转个角度),再统计两边结果的一致程度。任何“事先约好”的方案,这个一致程度都有一个上限;量子力学预言纠缠会超过这个上限。几十年来的实验一次次证实了量子力学的预言,相关实验工作获得了 2022 年诺贝尔物理学奖。

    但纠缠不能用来超光速传消息:北京这边看到的永远只是随机的 0 和 1,在和上海对照结果之前,得不到任何信息。它真正的用处,是让很多量子比特协同起来,形成普通比特表达不了的关联。

    要点

    H 加 CNOT 就能制造纠缠:两个量子比特单独看都随机,合起来看完全相关,而且这种关联无法用“事先约好”来解释。纠缠不能传递信息。

    第 9 课 · 走出图纸

    真实的量子计算机

    量子比特用什么做

    任何有两个可以区分的状态、又能维持叠加的微小物理系统,都可以拿来当量子比特。几条主要路线:

    超导电路

    0 / 1 = 电路的两个能量状态

    芯片上的微型电路,冷却到比外太空还冷得多的约百分之一开尔文时,电流毫无阻力,表现出量子行为。用微波脉冲来做量子门。

    离子阱

    0 / 1 = 离子的两个能级

    用电磁场把单个带电原子悬在真空中,一字排开,再用激光照射来做量子门。

    中性原子

    0 / 1 = 原子的两个能级

    用聚焦的激光像镊子一样夹住单个原子,排成阵列,也用激光操作。

    光子

    0 / 1 = 水平 / 竖直偏振

    就是第 2、3 课里的偏振。光子跑得快、不怕热,但让两个光子相互作用很难。

    难在哪里

    太脆弱

    量子比特只要和外界发生一点点作用,比如热、振动、杂散的电磁场,叠加和纠缠就会慢慢消散,这叫退相干。计算必须赶在它消散之前做完。

    会出错

    每个量子门都有一点误差,步骤一多就会累积。解决办法是量子纠错:用许多个物理量子比特合成一个更可靠的“逻辑量子比特”,代价可能是上百甚至上千比 1。

    难扩大

    量子比特越多,布线、控制和互相干扰的问题就越复杂。比特的数量和质量要同时提高,才能运行真正有用的算法。

    擅长什么,不擅长什么

    已知有明显优势

    • 分解大数:Shor 算法比已知最好的经典方法快得多。如今常用的 RSA 等加密依赖“分解大数很难”,所以密码学界已经在推广能抵御量子计算的新加密方法。
    • 模拟分子和材料:自然界本身遵循量子规律,用量子系统去模拟它更自然,有望帮助研究药物、电池和催化剂。
    • 搜索类问题:Grover 算法带来平方级加速。

    优势有限或尚无定论

    • 日常任务:看视频、打字、玩游戏,普通电脑更快、更便宜、更稳定。
    • 海量数据处理:把大量数据装进量子比特、再读出来,本身就很慢,往往会吃掉优势。
    • 优化与机器学习:研究很多,但能否稳定胜过最好的经典方法,目前还没有定论。
    要点

    量子计算机更像一种专用工具,而不是更快的电脑。它最大的挑战是让脆弱的量子比特又多、又准、又能坚持足够久。

    收尾

    常见误解

    误解量子计算机同时尝试所有答案,所以什么都算得快。实际叠加里确实有 2ⁿ 个振幅,但测量只给一个结果(第 3、6 课)。只有能设计出巧妙干涉的问题才会变快(第 5、8 课)。
    误解叠加就是“不知道它是 0 还是 1”。实际“不知道”是普通的概率,只能相加不能抵消。叠加的振幅带正负号,会发生干涉,这是两者的根本区别(第 1、5 课)。
    误解纠缠可以实现超光速通信。实际单独一边看到的永远是随机结果,必须用普通方式对照后才能发现关联(第 7 课)。
    误解量子计算机将来会取代手机和电脑。实际它更像专用的协处理器,只在少数问题上有优势,日常计算仍然是普通电脑的天下(第 9 课)。
    误解量子比特数量越多,计算机就越强。实际质量同样关键:错误率多低、叠加能保持多久、比特之间能否灵活连接。数量多而错误多,也算不了有用的东西(第 9 课)。

    一页回顾

    01量子比特
    测量前可以同时带有 0 和 1 的成分。
    02叠加
    状态是一根长度为 1 的箭头,影子 a、b 叫振幅,a² + b² = 1。
    03测量
    只给出 0 或 1,概率是振幅的平方;测完箭头塌缩。
    04量子门
    翻转箭头但不改变长度,可以撤销。振幅可以为负。
    05干涉
    振幅沿路径相乘、在终点相加,正负会抵消。这是加速的来源。
    06多比特
    n 个量子比特有 2ⁿ 个振幅,但测量只给出一个结果。
    07纠缠
    H + CNOT 让两个量子比特的结果绑在一起,单独看仍随机。
    08Grover 搜索
    反复“标记、翻转”,用干涉把答案的概率放大。

    说明:为了直观,本页的箭头只画了振幅为实数(正数或负数)的情况。完整描述一个量子比特,振幅一般是复数,要用三维的“布洛赫球”来画;正负号在那里推广成了“相位”。但本页建立的直觉,包括概率是振幅的平方、正负能抵消、测量会塌缩,在完整理论里都同样成立。