本节摘要:量子计算是一种用"量子态"承载信息、用"量子门"变换信息、用"测量"读出信息的计算方式。它与经典计算的区别不在速度,而在状态描述的语言。本节给出这个工作定义,拆开"状态、操作、读出"三件套,并说明为什么指数级增长的状态空间既是量子计算的资本,也是它难以兑现的原因。
"量子计算"四个字里,真正起作用的是"量子"这个定语:它限定了信息以什么物理形态存在。经典计算机用电压高低表示比特,量子计算机用一个可控量子系统(比如一个超导电路的振荡状态、一个离子的内部能级)表示量子比特。载体变了,描述载体状态的数学语言也跟着变了——这才是全部故事的起点。
所以我们采用这样一个定义:量子计算 = 以量子态为信息载体、以幺正变换为基本操作、以测量为输出手段的计算范式。 这个定义里没有一个字是玄学,后面每一册内容都在展开它。
经典比特在任一时刻的状态是确定的:0,或者 1。一亿个比特的整机状态,就是一亿个 0/1 组成的序列,写出来是一个长度为一亿的二进制串。
量子比特的状态则由一对复数描述,写作 |ψ⟩ = α|0⟩ + β|1⟩。α 和 β 叫概率幅,它们不是概率本身,但模平方给出测量时得到 0 或 1 的概率。一个 n 量子比特的系统,其状态由 2^n 个概率幅完整刻画——这一行字就是"量子并行"全部魔法的数学源头,第二章会把它算给你看。
需要立刻泼一盆冷水:状态空间大,不等于"能同时读出所有答案"。测量会坍缩状态,你只能拿到一次随机采样。量子算法的全部技巧,就在于在测量之前用干涉把答案的概率幅推高、把错误答案的推低。记住这句话,第四章的所有算法都会回到它。
经典计算的基本操作是逻辑门:与、或、非。量子计算的基本操作是量子门,本质上是作用在概率幅矢量上的矩阵。比如 X 门(对应经典的非门)交换 |0⟩ 和 |1⟩;H 门把确定态变成均匀叠加态。
量子门有两个经典逻辑门不具备的性质:可逆(每个门都是幺正矩阵,信息不丢失)和可作用于叠加态(不是"先选一个状态再操作",而是同时作用在所有概率幅上)。这两个性质是量子算法能用干涉设计的前提。
经典程序打印结果,想打印几次打印几次。量子程序只能在末尾做测量,而且测量是有代价的:叠加态瞬间坍缩为一个确定结果,概率幅信息当场丢失。想要统计分布,就得把整个计算重跑很多遍。
这决定了量子算法的输出风格:它天然适合回答"某个性质/统计量"的问题(这组解满足某条件吗?分布的峰值在哪里?),而不适合直接"算出一张大表"。
| 维度 | 经典计算 | 量子计算 | 说明 |
|---|---|---|---|
| 信息载体 | 比特(0 或 1) | 量子比特(概率幅对) | 载体决定数学语言 |
| n 比特状态空间 | n 个确定状态 | 2^n 维概率幅空间 | 指数增长但读不出全貌 |
| 基本操作 | 与/或/非(多数不可逆) | 幺正量子门(全部可逆) | 可逆性来自量子力学 |
| 操作方式 | 逐状态处理 | 同时作用于全部概率幅 | 常被误传为"并行尝试所有答案" |
| 读出 | 任意读取,无损 | 测量坍缩,统计式读出 | 算法设计必须迁就读出方式 |
| 擅长问题 | 通用 | 因子分解、无序搜索、量子系统模拟等特定结构问题 | 见第四章 |
不写公式也能感受一下操作与读出的分离。下面是伪代码形式的完整量子程序:把一个量子比特置为叠加态,然后测量一千次。
初始:q = |0⟩ # 确定态 操作:H(q) # H 门:|0⟩ 变为 (|0⟩+|1⟩)/√2 重复 1000 次: 测量 q # 每次得到 0 或 1,各约 500 次 统计:0 约 500 次,1 约 500 次
三行里藏了两个要点:其一,操作只做了一次,但效果相当于"同时处理了两种可能";其二,读出必须靠重复测量凑出统计。经典程序里这两个动作的关系完全不是这样——这就是为什么把量子算法的思路直接翻译回经典代码时,常常显得不知所云。

最后把三句常被搞混的话钉在这里。第一,量子计算不会取代经典计算:它的 I/O 瓶颈决定了它只能作为特定环节的加速器,日常任务依旧归经典计算机管。第二,量子计算不是万加速:目前已知明确加速的是因子分解、无序搜索、量子系统模拟这几类结构特殊的问题,很多问题量子并没有优势。第三,量子计算不是科幻:几十量子比特的设备已经存在并在云上开放,问题是从"能演示"到"能商用"之间的距离。
带着这三句话,下一节我们把量子计算和经典计算逐项对比,看清楚那道分界线到底画在哪里。
不能直接运行。经典软件依赖可复制、可缓存、可任意读写的存储模型,量子设备三者皆无。现实的分工是经典程序做调度与前后处理,把其中某个计算密集环节交给量子协处理器——类似今天 GPU 的协作模式,但耦合得更紧。所以"量子时代还要不要学编程"的答案是肯定的:编排量子环节的恰恰是经典代码。
不能简单互换。两个经典比特可以无损地编码成一个量子比特吗?不行,一个量子比特只有二维状态空间,装不下四个经典状态还要保证可读出;反过来,一个量子比特的完整状态(两个复数)需要无穷多经典比特才能精确描述。两者是不同的信息资源,混合系统才是常态。
因为算法的一切设计最终都兑现在测量统计上。线路内部的振幅分布外部永远不可见,唯一泄露进经典世界的信息就是末端那串测量读数。这决定了量子算法的接口风格:输出必须是一个低维的答案(一个编号、一个判断),而不是整张数据表。设计算法时倒着推——先定输出,再反推干涉结构——往往比顺着写线路更有效。
比传言少得多。全册用到的只有三样:二维复矢量与矩阵乘法(第 2 章现场教)、初等概率(玻恩规则)、以及一点指数计数的直觉(1.2 节那张表)。高等量子力学不是前置而是结果——很多人正是通过量子计算才第一次真正用会了线性代数。真正的门槛是"愿意逐行手算"的习惯:本册反复安排演算,就是因为这门学科的理解红利全在笔尖上。