设 f(x) = s · x mod 2,即 x 与隐藏串 s 共有的那些比特的奇偶性。在经典情形下,每次询问 f 最多只能揭示 s 的一个比特:询问 x = 100 得到第一个比特,以此类推,n 个比特需要 n 次询问。 Bernstein–Vazirani 算法只用一次询问就找出整个 s,所用的线路与 Deutsch–Jozsa 相同:输入处于叠加、目标比特处于 |−⟩、预言机,再在输入上作用 Hadamard 门。预言机留下的状态是 Σₓ (−1)^(s·x) |x⟩ / √2ⁿ, 而这种符号模式恰好就是 n 个 Hadamard 门会变成单一基态 |s⟩ 的那种模式。 记住比特的顺序:结果写作 c[2] c[1] c[0],最高位在前。读取 `q[0]` 和 `q[2]` 的预言机,其隐藏串是 101。