学量子计算就像追剧,先把这几集数学补了就能看懂电路图

量子电路图没你想得那么玄乎,本质上就是几个矩阵在向量上转来转去。你只要把线性代数里最核心的三四块内容拎出来啃透,那些看起来像外星符号的电路图就能变成可读的流程图。

我自己大概花了两周业余时间走通这条路,从完全看不懂到能跟着论文里的电路图手动演算。回头一看,真正需要补的数学其实就下面这几集。

第一集:向量——量子态的“身份证”

量子计算里一切状态的起点,是一个列向量。别被“态矢”“叠加态”这些词吓到,它们说的就是向量。

具体长这样:

|0⟩ = [1, 0]ᵀ    (基态0)
|1⟩ = [0, 1]ᵀ    (基态1)

尖括号是狄拉克符号,物理学家喜欢这么写,你把它当向量别名就行。上标T是转置,把行向量竖起来变成列向量。

真正需要理解的是叠加态。一个量子比特可以同时处于0和1的状态,数学上就是这两个基向量的线性组合:

|ψ⟩ = α|0⟩ + β|1⟩ = [α, β]ᵀ

α和β是复数,叫振幅。关键约束是 |α|² + |β|² = 1,因为测量时得到0的概率就是|α|²,得到1的概率是|β|²。

我第一次读到这儿的时候卡了一下——为什么要复数?因为量子力学里波的干涉需要相位信息,实数不够用。但你先接受这个设定就行,不影响看懂电路图。

实战检验:你现在能认出量子电路图里每根线代表一个量子比特,初始状态通常默认是|0⟩,也就是向量[1, 0]ᵀ。这根线从左到右,就是向量被一路变换的过程。

第二集:矩阵——量子门的真面目

量子门在物理书里常被描述成“对量子比特的操作”,翻译成数学就是矩阵乘法。

每个量子门都是一个方阵,把它乘在状态向量上,就完成了状态变换。比如最常用的X门,作用是把|0⟩翻成|1⟩,把|1⟩翻成|0⟩,其实就是经典逻辑里的NOT门。它的矩阵是:

X = [[0, 1],
     [1, 0]]

验证一下:X|0⟩ = [[0,1],[1,0]] × [1,0]ᵀ = [0,1]ᵀ = |1⟩。确实翻了。

另一个必认的是Hadamard门,简称H门,负责制造叠加态。矩阵长这样:

H = 1/√2 × [[1,  1],
            [1, -1]]

把H门作用在|0⟩上:H|0⟩ = 1/√2 × (|0⟩ + |1⟩),也就是[1/√2, 1/√2]ᵀ。这个状态下测量,50%概率得0,50%得1。

你不需要背所有门的矩阵,但需要知道怎么查。常见的单量子比特门就这么几个:X、Y、Z、H、S、T,以及带参数的旋转门Rx、Ry、Rz。每个都有标准矩阵,维基百科上搜“Quantum logic gate”那张表就是你的速查手册。

一个关键细节:量子门矩阵必须是酉矩阵,也就是U†U = I。†是共轭转置。这个性质保证了变换前后概率总和始终为1。你不需要每次手动验证,但看到电路图里出现某个门时,心里要知道它背后就是个2×2或4×4的酉矩阵。

第三集:张量积——多量子比特的“拼接术”

单量子比特只有两个基态,两个量子比特就有四个基态:|00⟩、|01⟩、|10⟩、|11⟩。问题是怎么从单比特的向量得到双比特的向量?靠张量积,符号⊗。

规则很简单:每个比特的状态向量做张量积,维度相乘。两个2维向量张量积得到4维向量。

具体算一下。假设第一个量子比特在状态|0⟩=[1,0]ᵀ,第二个也在|0⟩,那么组合态是:

|0⟩ ⊗ |0⟩ = [1,0]ᵀ ⊗ [1,0]ᵀ = [1×1, 1×0, 0×1, 0×0]ᵀ = [1,0,0,0]ᵀ

这个4维向量就代表|00⟩态。同理,|1⟩ ⊗ |0⟩ = [0,0,1,0]ᵀ,代表|10⟩态。

多量子比特门的矩阵也是靠张量积构造的。比如你想对两个量子比特中的第一个加X门,第二个不动(加恒等门I),总的操作矩阵就是X ⊗ I,一个4×4矩阵。

这里有个极易踩的坑:量子电路图里门的位置不代表矩阵乘法的顺序。电路图从左往右读,但矩阵乘法从右往左算。第一个门最靠近初始态,对应最右边的矩阵。我刚学时在这里翻过车,算出来的结果完全对不上。

实战意义:当你看到电路图里有两条线,中间串着一个方块标记“CNOT”,你就知道它在数学上是作用在4维向量上的4×4矩阵。CNOT的标准矩阵是:

CNOT = [[1,0,0,0],
        [0,1,0,0],
        [0,0,0,1],
        [0,0,1,0]]

它翻转目标比特当且仅当控制比特为|1⟩。看不懂矩阵没关系,先用起来,等跑通一两个例子再回头看就明白了。

第四集:内积与测量——从量子态到经典比特

量子电路的最后一步通常是测量,电路图里画成一个仪表图标。数学上,测量就是从复数向量里提取概率的过程。

给定状态|ψ⟩ = [α, β]ᵀ,测量得到0的概率是|α|²,得到1的概率是|β|²。这里的|α|是复数的模,α = a+bi,则|α|² = a²+b²。

更一般地,对于多比特系统,你想知道某个特定比特是0还是1的概率,需要对整个状态向量做偏迹运算。但初学阶段,手动算两三个比特的测量概率就够了,用内积公式:

测量结果对应某个基态|k⟩的概率 = |⟨k|ψ⟩|²

⟨k|是|k⟩的共轭转置,内积算出来是个复数,取模平方就是概率。

举个例子,两比特状态 |ψ⟩ = 1/2(|00⟩ + |01⟩ + |10⟩ + |11⟩),也就是[1/2, 1/2, 1/2, 1/2]ᵀ。测量第一个比特得到0的概率是多少?把所有第一个比特是0的基态概率加起来:|⟨00|ψ⟩|² + |⟨01|ψ⟩|² = (1/2)² + (1/2)² = 1/2。所以一半概率测到0。

到这一步,你已经能完整追踪一个量子电路:初始向量→逐级乘门矩阵→最后算测量概率。这就是看懂电路图的全部数学闭环。

第五集:复数——躲不开但可以浅尝

前面一直提到复数,但说实话,初学阶段你只需要掌握三个操作:

  1. 复数写法:a+bi,i²=-1
  2. 模的计算:|a+bi| = √(a²+b²)
  3. 共轭:a+bi的共轭是a-bi

量子门矩阵里经常出现i、-i、e^(iπ/4)这些东西。e^(iθ)就是cosθ + i sinθ,欧拉公式,S门里的e^(iπ/2)代进去就是cos(π/2)+i sin(π/2) = 0+1i = i。

你不需要搞懂复分析,会代数运算、能算出模平方就够了。因为最终测量概率只看模平方,虚部在物理上有意义但在概率计算里化成了实数。

我当时的做法是拿张草稿纸,把H门作用在|0⟩上的过程手算一遍:矩阵乘法涉及1/√2和-1/√2,算出来向量元素带根号,再算模平方,根号消掉,得到1/2。算完这一遍,心态就稳了——原来量子计算里那些反直觉的现象,底层还是老老实实的线性代数。

常见问题

需要把整本线性代数教材啃完吗?

完全不用。向量运算、矩阵乘法、张量积、内积、特征值这几个概念,对应到教材里大概就前三章的内容。MIT的Gilbert Strang网课看前8讲足够。特征值暂时用不到,可以跳过,等学到变分量子算法时再补。

复数运算不熟会不会卡住?

初学阶段不会。90%的手算练习里,复数只出现在门矩阵中,你只需要做乘法和共轭,不涉及复变函数。实在不放心,花一小时过一遍复数的四则运算和欧拉公式就行。

有没有推荐的练手工具?

直接用Python加NumPy。把常见门矩阵定义好,状态向量用np.array,矩阵乘法用@,张量积用np.kron。三行代码就能模拟一个两比特电路。等熟练了再上Qiskit,那时候你用qiskit画电路图,脑子里跑的是矩阵,而不是黑箱。