This is an old revision of this page, as edited by Fawly(talk | contribs) at 22:07, 10 November 2020(→Algorithm: changed diagram to latex math, added some explanations). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.Revision as of 22:07, 10 November 2020 by Fawly(talk | contribs)(→Algorithm: changed diagram to latex math, added some explanations)
Given an oracle that implements a function in which is promised to be the dot product between and a secret string modulo 2, , find .
Algorithm
Classically, the most efficient method to find the secret string is by evaluating the function times where , [2]
In contrast to the classical solution which needs at least queries of the function to find , only one query is needed using quantum computing. The quantum algorithm is as follows: [2]
Next, apply the oracle which transforms . This can be simulated through the standard oracle that transforms by applying this oracle to . ( denotes addition mod two.) This transforms the superposition into
Another Hadamard transform is applied to each qubit which makes it so that for qubits where , its state is converted from to and for qubits where , its state is converted from to . To obtain , a measurement in the standard basis () is performed on the qubits.
Graphically, the algorithm may be represented by the following diagram, where denotes the Hadamard transform on qubits:
The reason that the last state is is because, for a particular ,
Since is only true when , this means that the only non-zero amplitude is on . So, measuring the output of the circuit in the computational basis yields the secret string .