qit.examples.bernstein_vazirani

qit.examples.bernstein_vazirani(n=6, linear=True)

Bernstein-Vazirani algorithm demo.

Simulates the Bernstein-Vazirani algorithm [2], which, given a black box oracle implementing a linear Boolean function \(f_a(x) := a \cdot x\), returns the bit vector a (and thus identifies the function) with just a single oracle call. If the oracle function is not linear, the algorithm will fail.

Parameters
  • n (int) – number of qubits

  • linear (bool) – if False, use a random nonlinear function instead, leading to the algorithm failing