单比特门 · X、H、Z 与它们的矩阵

量子门就是作用在状态向量上的幺正矩阵。这一章讲透最常用的单比特门——X(非门)、Z(相位翻转)、H(叠加)——给出矩阵、用代码施加并打印状态验证,并点破一个重要性质:所有量子门都可逆。

作者 David更新于 第 4 篇(共 15 篇)

单比特门 · X、H、Z 与它们的矩阵

qubit 的状态是个向量;那操作 qubit,自然就是用矩阵去乘这个向量。这就是量子门(quantum gate) 的全部真相:

∣ψ新⟩=U∣ψ旧⟩\ket{\psi_{\text{新}}} = U \ket{\psi_{\text{旧}}}

一个单比特门,就是一个 2×22\times 2 的矩阵 UU。这一章认识最常用的三个,每个都给矩阵、施加、打印状态验证——看着结果学。

X 门:量子版的 NOT

X 门交换 ∣0⟩\ket{0} 和 ∣1⟩\ket{1},就是经典的「非门」:

X=[0110],X∣0⟩=[0110][10]=[01]=∣1⟩X = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}, \qquad X\ket{0} = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}\begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} 0 \\ 1 \end{bmatrix} = \ket{1}

代码验证——施加 X,打印状态,果然从 ∣0⟩\ket{0} 变成了 ∣1⟩\ket{1}:

from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector

qc = QuantumCircuit(1)
qc.x(0)
print(Statevector(qc))
# Statevector([0.+0.j, 1.+0.j], dims=(2,))   → [0, 1] = |1⟩

Z 门:翻转相位

Z 门保持 ∣0⟩\ket{0} 不动,但给 ∣1⟩\ket{1} 乘上一个负号:

Z=[100−1],Z∣0⟩=∣0⟩,Z∣1⟩=−∣1⟩Z = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix}, \qquad Z\ket{0} = \ket{0}, \quad Z\ket{1} = -\ket{1}

Z 门作用在 ∣0⟩\ket{0} 上「什么都没变」,作用在 ∣1⟩\ket{1} 上只是加个负号——测量概率完全不变(∣−1∣2=1|-1|^2 = 1)。那它有什么用? 用处大了。那个负号是相位(phase),它在叠加态里才显威力:Z∣+⟩=12(∣0⟩−∣1⟩)=∣−⟩Z\ket{+} = \frac{1}{\sqrt{2}}(\ket{0} - \ket{1}) = \ket{-}——把 ∣+⟩\ket{+} 变成了 ∣−⟩\ket{-}。两者测量分布一样(都是五五开),但它们是不同的状态,在后续的干涉中表现天差地别。相位是量子计算的暗物质:看不见(单独测不出来),却主宰全局。 下一章你就会见识它的威力。

H 门:制造叠加

H(Hadamard)门是量子计算的主力,它把确定态变成叠加态:

H=12[111−1],H∣0⟩=∣+⟩,H∣1⟩=∣−⟩H = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}, \qquad H\ket{0} = \ket{+}, \quad H\ket{1} = \ket{-}

注意 H∣1⟩=∣−⟩=12(∣0⟩−∣1⟩)H\ket{1} = \ket{-} = \frac{1}{\sqrt{2}}(\ket{0} - \ket{1})——那个负号又出现了(来自矩阵右下角的 −1-1)。∣+⟩\ket{+} 和 ∣−⟩\ket{-} 测量分布相同,但相位相反,这个区别下一章是主角。

看看门的矩阵

不确定某个门是什么矩阵?用 Operator 直接打印出来:

from qiskit.quantum_info import Operator

qc = QuantumCircuit(1)
qc.h(0)
print(Operator(qc).data)
# [[ 0.707+0.j  0.707+0.j]
#  [ 0.707+0.j -0.707+0.j]]     → 正是 H 矩阵

这在调试 时很有用:把你搭的一段线路整体看成一个矩阵,和预期对比。

常用单比特门速查

门作用矩阵Qiskit
X翻转 ∣0⟩↔∣1⟩\ket{0}\leftrightarrow\ket{1}(NOT)[0110]\begin{bmatrix}0&1\\1&0\end{bmatrix}qc.x(0)
Y翻转 + 相位[0−ii0]\begin{bmatrix}0&-i\\i&0\end{bmatrix}qc.y(0)
Z给 ∣1⟩\ket{1} 加负号[100−1]\begin{bmatrix}1&0\\0&-1\end{bmatrix}qc.z(0)
H制造叠加12[111−1]\frac{1}{\sqrt{2}}\begin{bmatrix}1&1\\1&-1\end{bmatrix}qc.h(0)
S加 90° 相位[100i]\begin{bmatrix}1&0\\0&i\end{bmatrix}qc.s(0)
T加 45° 相位[100eiπ/4]\begin{bmatrix}1&0\\0&e^{i\pi/4}\end{bmatrix}qc.t(0)

X,Y,ZX, Y, Z 合称泡利门(Pauli gates)。从 Bloch 球看,它们都是让球绕某个轴转 180°;HH 是绕一条斜轴转;SS、TT 是绕 Z 轴转小角度。「量子门 = 旋转 Bloch 球」是个好用的直觉。

一个关键性质:量子门都可逆

经典逻辑门很多是不可逆的:AND 门输出 0,你没法反推输入是 00、01 还是 10——信息丢了。但量子门全都可逆:

每个量子门 UU 都是幺正矩阵(unitary),满足 U†U=IU^\dagger U = I——这意味着它一定有逆操作 U†U^\dagger,能把状态精确地变回去。 物理上,这是量子演化的基本要求(不能凭空丢信息)。工程上,它有个实用推论:任何一段量子线路,都能「倒着跑」回到初始态——把每个门换成它的逆、顺序反过来即可。比如 XX 的逆是它自己(XX=IXX=I),HH 的逆也是自己(HH=IHH=I,下一章会亲手验证),SS 的逆是 S†S^\dagger。这个「可逆」性质在算法设计里到处都是(比如「算完再解开」的 uncompute 技巧)。

小结与下一章

量子门就是作用在状态向量上的幺正矩阵:XX 是 NOT,ZZ 翻相位,HH 造叠加;我们用 Statevector 和 Operator 把作用和矩阵都打印出来验证了。记住两点:相位(那个负号)单独测不出、却主宰干涉;所有门都可逆(U†U=IU^\dagger U = I)。

那个反复出现的「负号 / 相位」,到底怎么变出量子计算的威力?下一章我们做个惊人的实验:连按两次 H 门,结果不是「随机的随机」,而是确定地回到 0——这背后就是干涉。👉 叠加与干涉:两次 H 门为什么不是「更随机」。

参考文献

本页目录