The first quantum algorithm we will look at is the Bernstein-Vazirani algorithm. Given a secret s $\in \{0,1\}^n$ and the function f : $\{0,1\}^n \rightarrow \{0,1\}$ defined as f(x) = x * s \* denotes the inner product of two bitstrings here For Bitstrings x and y of length n the inner product x * y is $x_1y_1 + ... + x_ny_n$ mod 2 The goal is to find the secret s using as few queries of f as possible. So as few evaluations of f as possible. We will look at a quantum algorithm that will find s with only one evaluation of f. ![[Pasted image 20260730144713.png]] The top wire consists of n qubits in state 0. $\ket{0}^n = \ket{0} \otimes ... \otimes \ket{0}$ The bottom wire is in state 1. Both wires together are in state $\ket{0^n1} = \ket{0}^n \otimes \ket{1}$ First, we apply the Hadamard gate on all qubits. The resulting state is calculated as follows: ![[Pasted image 20260730145119.png]]