2. 量子比特与量子门基础
经典比特只有 0 和 1 两个确定状态,而量子比特(qubit)的状态可以用二维复向量空间中的单位向量描述。采用计算基 \(|0\rangle=\begin{bmatrix}1\\0\end{bmatrix}\)、\(|1\rangle=\begin{bmatrix}0\\1\end{bmatrix}\),一个量子比特的纯态写作
\(|\psi\rangle=\alpha|0\rangle+\beta|1\rangle,\quad |\alpha|^2+|\beta|^2=1\)
其中 \(\alpha,\beta\) 为复数幅。叠加态的本质不是“同时是 0 和 1 的经典概率混合”,而是幅的相干叠加:幅可以相互干涉,测量时才按 \(|\alpha|^2\)、\(|\beta|^2\) 的概率坍缩到某一个基态。这一点决定了量子算法与经典随机算法的根本差别。
Bloch 球:单比特状态的几何表示
忽略全局相位后,任意单比特纯态可写成 \(|\psi\rangle=\cos\frac{\theta}{2}|0\rangle+e^{i\varphi}\sin\frac{\theta}{2}|1\rangle\),对应 Bloch 球面上极角 \(\theta\)、方位角 \(\varphi\) 的一个点。约定如下并全文保持一致:\(|0\rangle\) 位于 +z 极,\(|1\rangle\) 位于 −z 极,\(|+\rangle=(|0\rangle+|1\rangle)/\sqrt2\) 位于 +x 轴,\(|+i\rangle=(|0\rangle+i|1\rangle)/\sqrt2\) 位于 +y 轴。Bloch 球的价值在于把“门作用”变成“球面上的旋转”:绕某轴旋转一定角度,就是对应门的几何图像。
单量子比特门:矩阵形式与作用
量子门是作用在态向量上的酉矩阵 \(U\),满足 \(U^\dagger U=I\),因此保长度、可逆。X 门交换两个幅,等价于经典取反;Z 门保持 \(|0\rangle\) 不变、给 \(|1\rangle\) 加 −1 相位,在计算基下测量概率不变,但会改变后续干涉结果;Y 门相当于 X 与 Z 的组合,带 ±i 相位。相位门 S 与 T 分别给 \(|1\rangle\) 乘 \(i\) 与 \(e^{i\pi/4}\),它们是构造通用门集的关键成员。
Hadamard 门 \(H=\frac{1}{\sqrt2}\begin{bmatrix}1&1\\1&-1\end{bmatrix}\) 是最常用的“制造叠加”工具:\(H|0\rangle=|+\rangle\),\(H|1\rangle=|-\rangle\),且 \(H^2=I\)。从 Bloch 球看,H 是绕 \((x+z)/\sqrt2\) 轴旋转 180°,把 +z 极送到 +x 轴。一个常见误区是把 H 当成“随机数发生器”:单次测量确实各得 50%,但 \(|+\rangle\) 与 \(|-\rangle\) 的测量统计完全相同,差别藏在相位里,只有再经过 H 等操作才会显现为确定结果。
双量子比特门:CNOT 与 SWAP
双比特门作用在 4 维空间。CNOT 以第一个比特为控制、第二个为目标,矩阵为
\(\mathrm{CNOT}=\begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&0&1\\0&0&1&0\end{bmatrix}\)
基序取 \(|00\rangle,|01\rangle,|10\rangle,|11\rangle\)。它只在控制位为 1 时翻转目标位,是产生纠缠的基本操作:\((H\otimes I)|00\rangle=\frac{1}{\sqrt2}(|00\rangle+|10\rangle)\),再作用 CNOT 得 \(\frac{1}{\sqrt2}(|00\rangle+|11\rangle)\),即 Bell 态。SWAP 交换两个比特,矩阵在基序下把 \(|01\rangle\) 与 \(|10\rangle\) 互换,常用于路由与数据搬移。
电路案例:量子并行性从哪里来
考虑 2 比特电路:对 \(q_0\) 施加 H,再以 \(q_0\) 控制对 \(q_1\) 施加 CNOT。初始 \(|00\rangle\),H 后为 \(\frac{1}{\sqrt2}(|00\rangle+|10\rangle)\),CNOT 后为 \(\frac{1}{\sqrt2}(|00\rangle+|11\rangle)\)。若在 CNOT 前对 \(q_1\) 先施加 X,则得到 \(\frac{1}{\sqrt2}(|01\rangle+|10\rangle)\)。测量时只得到 00 或 11(或 01 或 10),各占 50%,单次运行看不出“并行”。
量子并行性的真正来源是:一次酉演化同时作用在叠加态的所有分支上,幅按线性规则 \(U(\alpha|0\rangle+\beta|1\rangle)=\alpha U|0\rangle+\beta U|1\rangle\) 并行更新,而干涉让某些分支的幅相长、另一些相消。以 Deutsch 算法为例,用 H 制备 \(|x\rangle\) 的叠加,经 oracle \(U_f\) 后相位被编码为 \((-1)^{f(x)}\),再用 H 干涉,一次查询即可判定常函数与平衡函数。这说明“并行”必须配合“干涉与测量设计”才能转化为算法优势,单纯制备叠加态并不构成加速。
可执行的小练习与判读依据
用 Qiskit 复现上述 Bell 态电路,可直接观察计数分布:
from qiskit import QuantumCircuit, transpile
from qiskit_aer import AerSimulator
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
sim = AerSimulator()
result = sim.run(transpile(qc, sim), shots=1024).result()
print(result.get_counts()) # 示例输出:{'00': 约512, '11': 约512}
判读要点:若计数只出现 00 与 11 且比例接近 1:1,说明纠缠制备成功;若出现 01 或 10,检查 CNOT 的控制位与目标位是否接反。把 H 换成 X 再运行,应得到确定的 11,可用于验证测量映射是否正确。进一步把 CNOT 前加一个 X 门,预期分布变为 01 与 10 各半,这能帮助区分“叠加”与“纠缠”两种不同现象。
掌握这些矩阵与几何图像后,后续分析更复杂的门序列时,就可以先在 Bloch 球上追踪单比特旋转,再用 CNOT 判断纠缠是否产生,从而把电路图读成一条可验证的状态演化链。