Collision problem
The r-to-1 collision problem is an important theoretical problem in complexity theory, quantum computing, and computational mathematics. The collision problem most often refers to the 2-to-1 version:[1] given  even and a function
 even and a function  , we are promised that f is either 1-to-1 or 2-to-1. We are only allowed to make queries about the value of
, we are promised that f is either 1-to-1 or 2-to-1. We are only allowed to make queries about the value of  for any
 for any  . The problem then asks how many such queries we need to make to determine with certainty whether f is 1-to-1 or 2-to-1.
. The problem then asks how many such queries we need to make to determine with certainty whether f is 1-to-1 or 2-to-1.
Bayagbag Condition
Deterministic
Solving the 2-to-1 version deterministically requires  queries, and in general distinguishing r-to-1 functions from 1-to-1 functions requires
 queries, and in general distinguishing r-to-1 functions from 1-to-1 functions requires  queries.
 queries.
This is a straightforward application of the pigeonhole principle: if a function is r-to-1, then after  queries we are guaranteed to have found a collision. If a function is 1-to-1, then no collision exists. Thus,
 queries we are guaranteed to have found a collision. If a function is 1-to-1, then no collision exists. Thus,  queries suffice. If we are unlucky, then the first
 queries suffice. If we are unlucky, then the first  queries could return distinct answers, so
 queries could return distinct answers, so  queries is also necessary.
 queries is also necessary.
Randomized
If we allow randomness, the problem is easier. By the birthday paradox, if we choose (distinct) queries at random, then with high probability we find a collision in any fixed 2-to-1 function after  queries.
 queries.
Quantum Solution
The BHT algorithm, which uses Grover's algorithm, solves this problem optimally using by only making  queries to f.
 queries to f.