叠加学堂superposition

量子计数:数一数有多少个解

用相位估计把「几个解」读出来

深入7 分钟第 46 / 80 节更新于 2026-10-18

抽屉里有钥匙,但你不知道是一把、两把,还是一把也没有。Grover 算法 能帮你拉开有钥匙的那一屉,却不会告诉你还有没有下一把。量子计数问的是另一个问题:不是「哪个是解」,而是「一共有几个」。

转多少下,取决于有几个解

Grover 的一步迭代,是在一个二维平面里旋转。这个平面由两个方向张成:所有解等权叠加的 ∣β⟩|\beta\rangle,和所有非解等权叠加的 ∣α⟩|\alpha\rangle。均匀叠加落在两者之间,旋转角 θ\theta 满足

sin⁡θ2=MN,M=Nsin⁡2θ2\sin\frac{\theta}{2}=\sqrt{\frac{M}{N}},\qquad M=N\sin^2\frac{\theta}{2}

每转一次前进 θ\theta,所以最优步数与 N/M\sqrt{N/M} 成正比。N 是一百万时,M 从 1 变成 4,最优步数就少一半。不知道 M,就不知道该转几下:转少了抬不起来,转多了越过顶点。

这条曲线的起伏周期,正是被 M 与 N 的比值定住的。下面这个演示里 M 固定为 1,你能拖的只有迭代次数。

周期的来源
M 固定为 1,演示不真的做计数:拖「迭代 k」,看命中概率如何周期性起伏。周期由 M/N 决定,计数正是从这段周期反推 M;点「跳到最优步数」只是按 √(N/M) 估一个 k,不等价于估计出 M。

把周期读成相位

计数不去找解,而是去问迭代算符转了多少度。做法是把 相位估计 套在 Grover 迭代上:均匀叠加可以写成两个本征态的组合,本征相位是 e±iθe^{\pm i\theta},于是相位寄存器读出的就是 ±θ/2π\pm\theta/2\pi,取绝对值再反解,M 就有了。整套东西与 振幅放大 共用同一个神谕,区别只在最后量的是「哪个」还是「几个」。

代价要算清楚。要分辨 M 与 M+1,相位精度得细到 Δθ≈1/NM\Delta\theta\approx 1/\sqrt{NM},查询次数量级是 NM\sqrt{NM};M 很小时退回 N\sqrt N,与 Grover 同阶。收益却不同:经典要区分「没有解」和「恰好一个解」,得查到几乎每一项,是 Ω(N);计数只要 N\sqrt N 量级。加速落在「计数」这个任务上,不落在「找出一个解」上。

两者是配套的。先用计数把 M 估出来,再按 π4N/M\frac{\pi}{4}\sqrt{N/M} 步跑 Grover,就不用猜步数。计数自己也不便宜:要神谕、要辅助比特、要受控迭代。

量子计数就是反复跑 Grover,数一数命中了多少次,再反推解数。
反复跑只能估命中率,命中率接近 1 时分不清 M 是 1 还是 2,而且每次都要重新制备;计数用相位估计直接读出旋转角,再反解出 M。
「数命中次数」是采样估计,分辨能力被命中率本身卡住;计数读的是旋转角,不是频率。
一句话结论

量子计数把 Grover 的旋转角读成相位:sin⁡(θ/2)=M/N\sin(\theta/2)=\sqrt{M/N},有了 θ 就有 M。它比经典计数少一个平方根,代价是 NM\sqrt{NM} 次神谕调用;它给的仍然是估计值,不是解的清单。与 Grover 配起来,才构成「先数、再找」的完整流程。

本节自测 · 3 题
未作答
01N = 1000 个条目,M 未知。要在「没有解」和「恰好一个解」之间做判断,经典的查询次数与量子计数分别是多少量级?
02量子计数最后读出的那个相位,对应的是什么?
03神谕一个解也不标记(M=0)时,量子计数与 Grover 分别会怎样?