Deutsch 内部的干涉机制
前情提要:第 7 篇《Deutsch–Jozsa:最迷你的量子加速》里,我们说它用一次询问就分辨了"常函数"和"平衡函数",只给了"迷你加速"的直觉。这一篇,拆开那个加速到底藏在哪——答案是干涉。

一、钩子:加速从哪来
经典做法:要判断一个函数是"常函数"还是"平衡函数",最坏得试一大半输入。Deutsch 用一次量子询问就分清——省下的不是"算力",而是"询问次数"。秘密在:量子把所有输入同时送进黑盒,再让答案互相干涉。
二、两类函数
设定很简单:函数 f 吃一个比特,吐一个比特。只有四种可能,归两类:
- 常函数:f 永远吐 0,或永远吐 1;
- 平衡函数:f 对一半输入吐 0、一半吐 1。
经典要区分它们,得问至少两次(问一次可能刚好都撞同 output)。量子问一次。
三、所有输入,一次喂入
把输入比特先过 H 门,变成"所有输入"的等权叠加——一次就把全集摆上台面。再让黑盒 U_f 作用上去:它不改输入寄存器,而是把答案"写"到另一个辅助比特的相位里(回顾第 16 篇:相位藏在振幅里,平时看不见,但干涉时会现身)。
四、干涉:错的抵消,对的放大
黑盒之后,再对输入寄存器做一组 H 门,然后测量。精妙在这一步:
- 若 f 是常函数:所有路径的相位一致,做一次 H 后全部相消,只剩全 0 态——测出来必是 0;
- 若 f 是平衡函数:路径间相位正负交错,相消后全 0 态被抹平,必留下非 0 信号——测出来不是全 0。
于是只测一个比特,就分出两类。
graph LR
IN["所有输入叠加: 一次全喂入黑盒"] --> U["黑盒给每个输入打相位标记"]
U --> INT["再经 H 门干涉: 常函数全相消, 平衡函数留信号"]
INT --> OUT["测一个比特, 立刻分辨两类"]
五、小结与预告
这一篇,把第 7 篇的"迷你加速"落到了机制:
- 量子把所有输入叠加一次喂入黑盒,而非逐个试;
- 黑盒把答案写进相位,再经 H 门干涉:常函数全相消、平衡函数留信号;
- 最终只测一个比特即分辨两类——省的是询问次数,根子是干涉。
干涉让"错答案消失、对答案放大",是 Shor、Grover 共通的底色。回到第 8 篇《Grover:在干草堆里快速找针》——下一篇,我们看 Grover 怎么把这套干涉变成"振幅放大",把搜索从 N 步压到根号 N。
下次见。