Skip to content

The Deutsch–Jozsa algorithm decides whether a promised Boolean function is constant or balanced. One coherent oracle call turns its values into relative signs; interference then tests whether their average vanishes. It is a useful first example because the entire correctness proof can be followed through the amplitudes.

The comparison depends on the required accuracy. One exact quantum query replaces 2n−1+12^{n-1}+1 exact deterministic classical queries, but two randomized classical queries already suffice if error 1/31/3 is allowed. This is a statement about oracle calls, with oracle construction and gate costs separate.

Helpful background. Quantum oracles defines a reversible Boolean query. Phase kickback explains why a minus-state answer qubit converts a bit flip into a phase. Query complexity compares fixed query caps and error requirements.

Fix n≥1n\ge 1, write N=2nN=2^n, and let

f:{0,1}n⟶{0,1}.f:\{0,1\}^n\longrightarrow\{0,1\}.

The legal functions belong to one of two disjoint classes:

constant:∣f−1(1)∣∈{0,N},balanced:∣f−1(1)∣=N2.\begin{aligned} \text{constant:}\quad &|f^{-1}(1)|\in\{0,N\},\\ \text{balanced:}\quad &|f^{-1}(1)|=\frac N2. \end{aligned}

Equivalently, regard the truth table as an NN-bit string. Its promised Hamming weight is 00, N/2N/2, or NN, and the required output is the class label constant or balanced. There are

2+(NN/2)2+\binom{N}{N/2}

legal functions: two constant truth tables and (NN/2)\binom{N}{N/2} balanced ones.

This is a promise on which oracle has been supplied, not a guarantee the circuit verifies. An arbitrary off-promise function need not receive a meaningful class label. The input-size conventions also matter: the address length is nn, while the truth table contains N=2nN=2^n values.

The data register has nn qubits and the answer register has one. In that tensor order, the supplied query is

Of∣x,b⟩=∣x,b⊕f(x)⟩.O_f|x,b\rangle=|x,b\oplus f(x)\rangle.

It is defined on every basis state and satisfies Of2=IO_f^2=I. Starting with ∣0n⟩∣1⟩|0^n\rangle|1\rangle, apply Hadamards to all qubits, call OfO_f, and apply Hadamards to the data alone:

∣0n⟩∣1⟩⟼1N∑x∣x⟩∣−⟩⟼1N∑x(−1)f(x)∣x⟩∣−⟩⟼∑yAf(y)∣y⟩∣−⟩.\begin{aligned} |0^n\rangle|1\rangle &\longmapsto \frac1{\sqrt N}\sum_x|x\rangle|{-}\rangle\\ &\longmapsto \frac1{\sqrt N}\sum_x(-1)^{f(x)}|x\rangle|{-}\rangle\\ &\longmapsto \sum_y A_f(y)|y\rangle|{-}\rangle. \end{aligned}

Measure the data. Return constant for y=0ny=0^n and balanced otherwise. The sum over NN addresses still contains only one invocation of OfO_f.

Two-register Deutsch–Jozsa circuit with a single Boolean query between Hadamard layers

The answer qubit returns to ∣−⟩|{-}\rangle after the oracle, while the data acquires relative phases (−1)f(x)(-1)^{f(x)}. The final Hadamards turn their mean into the amplitude of 0n0^n. Here MM denotes computational-basis measurement.

The answer state

∣−⟩=∣0⟩−∣1⟩2|{-}\rangle = \frac{|0\rangle-|1\rangle}{\sqrt2}

is a −1-1 eigenstate of the bit flip XX. Applying the oracle to one data basis state gives

Of∣x⟩∣−⟩=∣x,f(x)⟩−∣x,1⊕f(x)⟩2=(−1)f(x)∣x⟩∣−⟩.\begin{aligned} O_f|x\rangle|{-}\rangle &= \frac{|x,f(x)\rangle-|x,1\mathbin\oplus f(x)\rangle}{\sqrt2}\\ &= (-1)^{f(x)}|x\rangle|{-}\rangle. \end{aligned}

Linearity then gives the post-query state

∣ψf⟩X∣−⟩B,∣ψf⟩X=1N∑x(−1)f(x)∣x⟩.|\psi_f\rangle_X|{-}\rangle_B, \qquad |\psi_f\rangle_X = \frac1{\sqrt N}\sum_x(-1)^{f(x)}|x\rangle.

The answer register returns exactly, carries no residual function value, and factors from the data. What remains is a relative-phase pattern. This is not a readable list of all NN values: measuring XX immediately would still return only one uniformly distributed address.

Complementing the function multiplies the entire data state by −1-1:

∣ψf⊕1⟩=−∣ψf⟩.|\psi_{f\mathbin\oplus1}\rangle=-|\psi_f\rangle.

That global sign is unobservable. The two constant functions must therefore lead to the same class decision, as the promise requires.

For bit strings x,y∈{0,1}nx,y\in\{0,1\}^n, define the mod-two inner product

x⋅y=⨁j=1nxjyj.x\cdot y = \bigoplus_{j=1}^n x_jy_j.

The nn-qubit Hadamard transform acts as

H⊗n∣x⟩=1N∑y(−1)x⋅y∣y⟩.H^{\otimes n}|x\rangle = \frac1{\sqrt N} \sum_y(-1)^{x\cdot y}|y\rangle.

Applying it to the oracle state produces the normalized Walsh coefficients

Af(y)=1N∑x∈{0,1}n(−1)f(x)+x⋅y,Pr⁡(Y=y)=∣Af(y)∣2.A_f(y) = \frac1N \sum_{x\in\{0,1\}^n} (-1)^{f(x)+x\cdot y}, \qquad \Pr(Y=y)=|A_f(y)|^2.

The factor is 1/N1/N, not 1/N1/\sqrt N: one factor of 1/N1/\sqrt N comes from the uniform query state and the other from the final Hadamard transform.

Character orthogonality verifies normalization. Expanding the squared amplitudes gives

∑y∣Af(y)∣2=1N2∑x,x′(−1)f(x)+f(x′)∑y(−1)(x⊕x′)⋅y=1N2∑x,x′(−1)f(x)+f(x′)N δx,x′=1.\begin{aligned} \sum_y|A_f(y)|^2 &= \frac1{N^2} \sum_{x,x'}(-1)^{f(x)+f(x')} \sum_y(-1)^{(x\mathbin\oplus x')\cdot y}\\ &= \frac1{N^2} \sum_{x,x'}(-1)^{f(x)+f(x')} N\,\delta_{x,x'}\\ &=1. \end{aligned}

The algorithm uses only Af(0n)A_f(0^n), but the other coefficients explain the nonzero outcomes. A generic balanced function can distribute probability over several Walsh labels; balance alone does not encode a unique hidden word.

Exact classification and off-promise inputs

Section titled “Exact classification and off-promise inputs”

At the zero word, the character factor is one, so

Af(0n)=1N∑x(−1)f(x)=#{x:f(x)=0}−#{x:f(x)=1}N.\begin{aligned} A_f(0^n) &= \frac1N\sum_x(-1)^{f(x)}\\ &= \frac{\#\{x:f(x)=0\}-\#\{x:f(x)=1\}}N. \end{aligned}

If f=0f=0 everywhere, then Af(0n)=1A_f(0^n)=1 and the final data state is ∣0n⟩|0^n\rangle. If f=1f=1 everywhere, then Af(0n)=−1A_f(0^n)=-1 and the state is −∣0n⟩-|0^n\rangle. In either constant case, measurement returns 0n0^n with certainty. If ff is balanced, the two cardinalities are equal, Af(0n)=0A_f(0^n)=0, and that outcome is impossible. Therefore

Y=0n⟺f is constantY=0^n\Longleftrightarrow f\text{ is constant}

on the promise, with any Y≠0nY\ne0^n certifying balance.

Both promise classes are nonempty, so an ordinary zero-query procedure has no information about the label and cannot achieve worst-case success greater than 1/21/2. Under the site’s zero-error convention, a never-wrong zero-query procedure cannot emit either class label, because the same output distribution must serve inputs from both classes. It must therefore report ? with probability one, exceeding the allowed inconclusive probability 1/21/2. The one-query circuit is exact, so with the fixed query caps defined in query complexity,

QE(DJn)=Q0(DJn)=Qε(DJn)=1,0≤ε<12.Q_E(\mathrm{DJ}_n) =Q_0(\mathrm{DJ}_n) =Q_\varepsilon(\mathrm{DJ}_n) =1, \qquad 0\le\varepsilon<\frac12.

Outside the promise, if w=∣f−1(1)∣w=|f^{-1}(1)|, then

Pr⁡(Y=0n)=(1−2wN)2.\Pr(Y=0^n) = \left(1-\frac{2w}{N}\right)^2.

This formula describes the circuit’s response to an off-promise truth table. It does not make one shot a test of arbitrary Hamming weight, and it does not certify that the supplier respected the promise.

Classical queries: exact answers versus bounded error

Section titled “Classical queries: exact answers versus bounded error”

A deterministic exact algorithm queries distinct truth-table entries. It stops and returns balanced as soon as two different values have appeared. If the first N/2+1N/2+1 answers are identical, the function cannot be balanced, so it returns constant. This gives the upper bound N/2+1N/2+1.

The bound is necessary. After any transcript containing at most N/2N/2 identical answers, two legal completions remain possible: the queried value can fill the entire table, producing a constant function, or exactly N/2N/2 entries can take that value while the unqueried positions supply the opposite value, producing a balanced function. No deterministic decision tree can label both completions correctly from that transcript. Consequently,

D(DJn)=N2+1=2n−1+1.D(\mathrm{DJ}_n) =\frac N2+1 =2^{n-1}+1.

This is exponential in the address length nn and linear in the truth-table size NN. It is an exact-query theorem. The phrase “classical algorithms require exponentially many queries” is misleading unless the deterministic or zero-error requirement is stated.

Bounded error changes the picture. For a fixed cap 1≤q≤N1\le q\le N, query qq distinct uniformly random addresses. A mixed transcript proves the function balanced. For a balanced function, the probability of an all-equal transcript is

pN,q=2(N/2q)(Nq),p_{N,q} = 2\frac{\binom{N/2}{q}}{\binom Nq},

where (N/2q)=0\binom{N/2}{q}=0 when q>N/2q>N/2. On an all-equal transcript, return constant with probability

aN,q=11+pN,q.a_{N,q} = \frac1{1+p_{N,q}}.

A constant instance then has error 1−aN,q1-a_{N,q}, while a balanced instance has error aN,qpN,qa_{N,q}p_{N,q}. The choice of aN,qa_{N,q} equalizes them:

eN,q∗=pN,q1+pN,q,eN,0∗=12.e^*_{N,q} = \frac{p_{N,q}}{1+p_{N,q}}, \qquad e^*_{N,0}=\frac12.

This risk is minimax optimal. Average any candidate algorithm over permutations of the NN addresses and over complementation of every truth-table bit. Symmetrization cannot increase its worst-case error. Repeated addresses add no information, and after qq distinct queries the symmetrized transcript is either mixed, which identifies balance, or all equal, which is compatible with both classes. The only remaining decision probability is aa; minimizing max⁡{1−a,apN,q}\max\{1-a,ap_{N,q}\} gives the value above.

For one query, pN,1=1p_{N,1}=1 and eN,1∗=1/2e^*_{N,1}=1/2. For two,

pN,2=N−22(N−1),eN,2∗=N−23N−4<13p_{N,2}=\frac{N-2}{2(N-1)}, \qquad e^*_{N,2}=\frac{N-2}{3N-4}<\frac13

for every N≥2N\ge2. Hence

R1/3(DJn)=2.R_{1/3}(\mathrm{DJ}_n)=2.

The honest comparison is now visible: exact quantum versus exact deterministic queries separates 11 from 2n−1+12^{n-1}+1, whereas bounded-error quantum versus bounded-error randomized queries separates 11 from 22. The latter has no asymptotic query advantage.

For N=8N=8, the following values show how a small allowed error changes the query count. At q=0q=0 there is no observed transcript; guessing the class with a fair coin has error 1/21/2.

Query cap qq Balanced all-equal probability p8,qp_{8,q} Optimal worst-case error
00 No queries 1/21/2
11 11 1/21/2
22 3/73/7 3/103/10
33 1/71/7 1/81/8
44 1/351/35 1/361/36
55 00 00

For example, query two distinct uniform addresses. Unequal answers establish balance. After equal answers, return constant with probability 7/107/10. A constant function has error 3/103/10; a balanced function has error (3/7)(7/10)=3/10(3/7)(7/10)=3/10.

Take n=3n=3, N=8N=8, and order truth-table positions as 000, 001, 010, 011, 100, 101, 110, 111. Enumerating all 2+(84)=722+\binom84=72 promised functions verifies the exact decision criterion. A concrete nonlinear balanced instance is majority on three bits,

f(x)=1⟺∣x∣≥2,f(x)=1\quad\Longleftrightarrow\quad |x|\ge2,

with truth-table word 00010111. Its unnormalized Walsh vector, ordered by y=000,001,…,111y=000,001,\ldots,111, is

Wf=(0,4,4,0,4,0,0,−4).W_f=(0,4,4,0,4,0,0,-4).

Because Af=Wf/8A_f=W_f/8, the final data state is

∣001⟩+∣010⟩+∣100⟩−∣111⟩2.\frac{|001\rangle+|010\rangle+|100\rangle-|111\rangle}{2}.

Each displayed word has probability 1/41/4, and 000000 has probability zero. The two constant functions instead give ∣000⟩|000\rangle and −∣000⟩-|000\rangle.

The following integer calculation checks the complete three-bit promise and its Walsh normalization. Bit xx of mask stores the value at address xx, so the majority truth table is hexadecimal 0xe8 in this encoding.

const N = 8;
const parity = (z) => {
let p = 0;
while (z) { p ^= z & 1; z >>= 1; }
return p;
};
let promised = 0;
let majorityWalsh;
for (let mask = 0; mask < 256; mask++) {
const f = (x) => (mask >> x) & 1;
const weight = Array.from({ length: N }, (_, x) => f(x))
.reduce((a, b) => a + b, 0);
if (![0, 4, 8].includes(weight)) continue;
promised++;
const W = Array.from({ length: N }, (_, y) =>
Array.from({ length: N }, (_, x) =>
(f(x) ^ parity(x & y)) ? -1 : 1)
.reduce((a, b) => a + b, 0));
if (W.reduce((a, v) => a + v * v, 0) !== N * N) throw Error('norm');
if ((weight === 4) !== (W[0] === 0)) throw Error('decision');
if (mask === 0xe8) majorityWalsh = W;
}
if (promised !== 72) throw Error('promise count');
if (majorityWalsh.join(',') !== '0,4,4,0,4,0,0,-4') throw Error('spectrum');
console.log({ promised, majorityWalsh });

With the initial answer ∣1⟩|1\rangle supplied, the circuit uses n+1n+1 visible qubits, 2n+12n+1 Hadamards, one oracle call and one measurement of the data register. Starting all qubits in zero adds an XX on the answer. Any workspace inside the oracle must also be counted. The Hadamards can run in parallel within each layer, but total depth includes the oracle, preparation and readout.

An arbitrary truth table has 2n2^n entries, so constructing its reversible circuit may be expensive. A compiled small example can demonstrate phase control and interference without establishing an asymptotic runtime advantage. Nor does the measurement reveal all the truth-table entries: it gives one promised class label.

Deutsch’s original 1985 one-bit procedure could be inconclusive with probability 1/21/2. Deutsch and Jozsa’s 1992 generalization used two function-controlled-NOT calls. The exact one-query circuit above is the refinement by Cleve, Ekert, Macchiavello and Mosca, published in 1998 (preprint 1997).

For the affine functions fa,b(x)=a⋅x⊕bf_{a,b}(x)=a\cdot x\oplus b, the same calculation gives Af(y)=(−1)bδy,aA_f(y)=(-1)^b\delta_{y,a}. Recovering the hidden word aa is the Bernstein–Vazirani problem. Balance alone does not imply this affine form. Simon’s algorithm instead uses a many-bit value oracle and repeated samples to find a hidden XOR period. Statements about BQP and BPP require the definitions in quantum complexity classes, beyond this fixed promise problem.

For N=2nN=2^n, count the constant and balanced Boolean truth tables. Explain why this count describes a promise on the selected oracle rather than a restriction on the states the algorithm may query.

Solution

There are two constant truth tables, all zero and all one. A balanced truth table is specified by choosing the N/2N/2 positions assigned one, giving (NN/2)\binom{N}{N/2} choices. Thus the promised family has

2+(NN/2)2+\binom{N}{N/2}

members. The supplier chooses one unitary OfO_f from this family. Once chosen, the complete XOR map acts on every computational-basis state ∣x,b⟩|x,b\rangle and hence on every superposition by linearity; the promise does not confine the query state to a smaller subspace.

Apply OfO_f to ∣x⟩∣−⟩|x\rangle|{-}\rangle. Prove target return and factorization for a general data superposition, then determine the effect of replacing ff by f⊕1f\mathbin\oplus1.

Solution

For a basis state,

Of∣x⟩∣−⟩=∣x,f(x)⟩−∣x,1⊕f(x)⟩2=(−1)f(x)∣x⟩∣−⟩.O_f|x\rangle|{-}\rangle = \frac{|x,f(x)\rangle-|x,1\mathbin\oplus f(x)\rangle}{\sqrt2} = (-1)^{f(x)}|x\rangle|{-}\rangle.

Therefore

Of(∑xαx∣x⟩)∣−⟩=(∑xαx(−1)f(x)∣x⟩)∣−⟩.O_f\left(\sum_x\alpha_x|x\rangle\right)|{-}\rangle = \left(\sum_x\alpha_x(-1)^{f(x)}|x\rangle\right)|{-}\rangle.

The common answer state factors exactly. Complementing ff multiplies every data amplitude by −1-1, which is one global phase and cannot affect any measurement probability.

Starting from the post-query data state, derive Af(y)A_f(y), prove Parseval normalization with character orthogonality, and obtain the zero-word probability for a truth table of arbitrary weight ww.

Solution

Insert

H⊗n∣x⟩=1N∑y(−1)x⋅y∣y⟩H^{\otimes n}|x\rangle = \frac1{\sqrt N}\sum_y(-1)^{x\cdot y}|y\rangle

into N−1/2∑x(−1)f(x)∣x⟩N^{-1/2}\sum_x(-1)^{f(x)}|x\rangle. Collecting the coefficient of ∣y⟩|y\rangle gives

Af(y)=1N∑x(−1)f(x)+x⋅y.A_f(y)=\frac1N\sum_x(-1)^{f(x)+x\cdot y}.

Since ∑y(−1)(x⊕x′)⋅y=Nδx,x′\sum_y(-1)^{(x\oplus x')\cdot y}=N\delta_{x,x'}, expanding ∑y∣Af(y)∣2\sum_y|A_f(y)|^2 leaves NN diagonal terms divided by NN, hence one. At y=0ny=0^n, there are N−wN-w positive and ww negative contributions, so

Af(0n)=1−2wN,Pr⁡(0n)=(1−2wN)2.A_f(0^n)=1-\frac{2w}{N}, \qquad \Pr(0^n)=\left(1-\frac{2w}{N}\right)^2.

Reproduce the exhaustive n=3n=3 check and compute the spectrum of the nonlinear balanced truth table 00010111. Why does this example refute the claim that every balanced function produces one deterministic nonzero word?

Solution

There are 2+(84)=722+\binom84=72 promised masks. For each mask, compute

Wf(y)=∑x=07(−1)f(x)+x⋅y.W_f(y)=\sum_{x=0}^{7}(-1)^{f(x)+x\cdot y}.

The two constant masks have Wf(000)=±8W_f(000)=\pm8; all seventy balanced masks have Wf(000)=0W_f(000)=0. For 00010111, direct summation gives

Wf=(0,4,4,0,4,0,0,−4).W_f=(0,4,4,0,4,0,0,-4).

Dividing by eight gives amplitudes 1/21/2 on 001001, 010010, and 100100, amplitude −1/2-1/2 on 111111, and zero elsewhere. Four different outcomes therefore occur with probability 1/41/4 each. Balance forbids only the zero word; it does not determine the rest of the spectrum.

Give an executable classical schedule using N/2+1N/2+1 queries and an indistinguishable-transcript argument showing that no exact deterministic schedule can use fewer in the worst case.

Solution

Query distinct addresses until a mismatch occurs or N/2+1N/2+1 identical values have been seen. A mismatch proves balance; more than half the table having one value proves constancy under the promise.

For the lower bound, consider any transcript of at most N/2N/2 identical answers. It can be completed to a constant table, but it can also be completed to a balanced table by placing the opposite bit in exactly N/2N/2 unqueried positions. Both completions follow the same decision-tree path, so no leaf at that depth can be correct on both. Thus

D(DJn)=N2+1.D(\mathrm{DJ}_n)=\frac N2+1.

Randomization cannot reduce the worst-case fixed cap if every run must return the correct class: an all-equal transcript of at most N/2N/2 answers remains compatible with both classes.

Derive pN,qp_{N,q}, aN,qa_{N,q}, and eN,q∗e^*_{N,q}. Evaluate them for N=8N=8 and q=0,1,…,5q=0,1,\ldots,5, then prove R1/3=2R_{1/3}=2 for every n≥1n\ge1.

Solution

For q≥1q\ge1 distinct uniform addresses, a balanced table gives all zeros with probability (N/2q)/(Nq)\binom{N/2}{q}/\binom Nq and all ones with the same probability. Hence

pN,q=2(N/2q)(Nq).p_{N,q}=2\frac{\binom{N/2}{q}}{\binom Nq}.

If aa is the probability of returning constant after an all-equal transcript, the two worst-case errors are 1−a1-a for a constant and apN,qap_{N,q} for a balanced function. Equalizing them gives

aN,q=11+pN,q,eN,q∗=pN,q1+pN,q.a_{N,q}=\frac1{1+p_{N,q}}, \qquad e^*_{N,q}=\frac{p_{N,q}}{1+p_{N,q}}.

For N=8N=8 and q=0q=0 through 55, the balanced all-equal probabilities are

N/A,1,37,17,135,0;\text{N/A},\quad 1,\quad \frac37,\quad \frac17,\quad \frac1{35},\quad 0;

the constant-decision probabilities are

12,12,710,78,3536,1;\frac12,\quad \frac12,\quad \frac7{10},\quad \frac78,\quad \frac{35}{36},\quad 1;

and the minimax errors are

12,12,310,18,136,0.\frac12,\quad \frac12,\quad \frac3{10},\quad \frac18,\quad \frac1{36},\quad 0.

Symmetrization over addresses and bit complementation reduces any algorithm to these transcript classes, proving optimality. One query has error 1/21/2, while two have error (N−2)/(3N−4)<1/3(N-2)/(3N-4)<1/3 for every N≥2N\ge2. Therefore R1/3=2R_{1/3}=2.

For fa,b(x)=a⋅x⊕bf_{a,b}(x)=a\cdot x\mathbin\oplus b, compute the entire Walsh spectrum. Explain why its deterministic output cannot be generalized to every balanced function.

Solution

Substitution gives

Afa,b(y)=(−1)bN∑x(−1)x⋅(a⊕y)=(−1)bδy,a.\begin{aligned} A_{f_{a,b}}(y) &= \frac{(-1)^b}{N} \sum_x(-1)^{x\cdot(a\oplus y)}\\ &= (-1)^b\delta_{y,a}. \end{aligned}

Thus measurement returns aa with certainty. When a=0a=0, the function is constant; when a≠0a\ne0, it is balanced. For n≥3n\ge3, only 2(N−1)2(N-1) of the (NN/2)\binom{N}{N/2} balanced truth tables are affine, so most can have support on several Walsh labels, as the majority example shows. (For n=1,2n=1,2, every balanced truth table happens to be affine.) The hidden-word inference belongs to Bernstein–Vazirani, not to the general Deutsch–Jozsa promise.

Suppose the ideal data output is measured after an additional channel which, with probability η\eta, replaces the entire data state by I/NI/N. Compute the error for each promised class. Does one observation still certify balance?

Solution

The replacement contributes probability 1/N1/N to every word. For a constant function the zero-word probability becomes (1−η)+η/N(1-\eta)+\eta/N, so its classification error is η(1−1/N)\eta(1-1/N). For a balanced function the ideal zero-word probability vanishes, but replacement contributes η/N\eta/N; this is its error. For η>0\eta>0, neither outcome provides the ideal certainty. Repeated independent trials can estimate the probabilities, but interpreting them requires a specified noise model. This example assumes replacement of the whole data register, not independent depolarization of each qubit.

  • R. Cleve, A. Ekert, C. Macchiavello, and M. Mosca, “Quantum Algorithms Revisited,” Proceedings of the Royal Society A 454, 339–354 (1998), doi:10.1098/rspa.1998.0164.
  • D. Deutsch, “Quantum Theory, the Church–Turing Principle and the Universal Quantum Computer,” Proceedings of the Royal Society A 400, 97–117 (1985), doi:10.1098/rspa.1985.0070.
  • D. Deutsch and R. Jozsa, “Rapid Solution of Problems by Quantum Computation,” Proceedings of the Royal Society A 439, 553–558 (1992), doi:10.1098/rspa.1992.0167.
  • M. A. Nielsen and I. L. Chuang, Quantum Computation and Quantum Information, 10th Anniversary Edition, Cambridge University Press (2010), doi:10.1017/CBO9780511976667.