  Quantum algorithms are typically understood in terms of the evolution of a
multi-qubit quantum system under a prescribed sequence of unitary
transformations. The input to the algorithm prescribes some of the unitary
transformations in the sequence with others remaining fixed. For oracle query
algorithms, the input determines the oracle unitary transformation. Such
algorithms can be regarded as devices for discriminating amongst a set of
unitary transformations. The question arises: "Given a set of known oracle
unitary transformations, to what extent is it possible to discriminate amongst
them?" We investigate this for the Deutsch-Jozsa problem. The task of
discriminating amongst the admissible oracle unitary transformations results in
an exhaustive collection of algorithms which can solve the problem with
certainty.

Quantum Physics