A partire dall'inizio (un ottimo punto di partenza, dopo tutto), lo stato viene inserito in (qui, chiamato "campione di Fourier"). Questo genera lo statoOra, applichiamo l'operazione (in questo caso, l' oracolo bit ) per dare|0⟩⊗n|−⟩H⊗n⊗I⎛⎝∑x={0,1}n12n/2|x⟩⎞⎠|−⟩=12n/2(|0⟩+|1⟩)⊗n|−⟩.
UfUf⎛⎝∑x={0,1}n12n/2|x⟩⎞⎠|−⟩=∑x={0,1}n12n/2|x⟩|−⊕f(x)⟩.
Il primo punto da notare è che è la classica operazione XOR . Ciò che questo in realtà è l' oracolo di fase , in modo da ottenereQuesto perché . Questo è il punto "istituisci una sovrapposizione ..." - tutto ciò significa⊕ ⎛⎝∑x={0,1}n12n/2(−1)f(x)|x⟩⎞⎠|−⟩.
Uf|x⟩(|0⟩−|1⟩)=|x⟩|f(x)⟩−|1⊕f(x)⟩=(−1)f(x)|x⟩(|0⟩−|1⟩)eseguire le operazioni richieste per impostare i qubit nello stato sopra, che è una sovrapposizione di tutti gli stati possibili (con i fattori di fase, in questo caso) . In questo caso, questo è solo Hadamard, seguito da un oracolo di fase.
Ora, è solo una stringa di bit classica: , quindixx=∏ixiH|xi⟩=12–√(|0⟩+(−1)xi|1⟩)=12–√∑y={0,1}(−1)xi.y|y⟩.
Questo dà alla proprietàH⊗n|x⟩=12n/2∑y∈{0,1}n(−1)x.y|y⟩.
Questo dà lo stato finale come12n⎛⎝∑x,y={0,1}n(−1)f(x)⊕x.y|y⟩⎞⎠|−⟩.
Sappiamo che , dando . Sommando i termini ottiene che . Questo significa che ci rimane il termine per , il che significa che , dando l'output come , che viene misurato in ottenere .f(x)=u.x=x.u(−1)f(x)⊕x.y=(−1)x.(u⊕y)x∑x(−1)x.(u⊕y)=0,∀u⊕y≠0u⊕y=0u=y|u⟩|−⟩u
Per quanto riguarda il motivo per cui vogliamo creare una sovrapposizione : è qui che entra in gioco la potenza dell'informatica quantistica - In termini meno matematici, l'applicazione della trasformazione di Hadamard sta eseguendo una rotazione sugli stati qubit per entrare nello stato . Quindi ruota ogni qubit in questo stato di sovrapposizione usando un'operazione equivalente a XOR (in questa nuova base), in modo che quando esegui di nuovo la trasformazione di Hadamard, ora stai semplicemente tornando allo stato . Un altro modo di considerare questo è considerarlo come una riflessione o inversione che ottiene lo stesso risultato.|+⟩⊗n|u⟩
Il punto è che, usando la sovrapposizione, possiamo fare questo per tutti i qubit contemporaneamente, invece di dover controllare individualmente ogni qubit come nel caso classico.