グローバーのアルゴリズム
もし、探索条件にあうデータが1個だけでなく、k個存在するならば、同じアルゴリズムを適用できるが、繰返し回数はπN/4の代わりにπ(N/k)/4としなければならない。 kが未知の場合を取り扱う方法は幾つかある。例として、繰返し回数を以下のようにしてグローバーのアルゴリズムを何回か走らせる方法がある。
π N 1 / 2 4 , π ( N / 2 ) 1 / 2 4 , π ( N / 4 ) 1 / 2 4 , ... {\displaystyle \pi {\frac {N^{1/2}}{4}},\pi {\frac {(N/2)^{1/2}}{4}},\pi {\frac {(N/4)^{1/2}}{4}},\ldots }
kがどのような値でも、上のような繰返し回数で行えば正しい解を高い確率で得られる。繰返しの総回数は多くとも次のようであり、O(N)のオーダーにとどまる。
π N 1 / 2 4 ( 1 + 1 2 + 1 2 + ⋯ ) {\displaystyle \pi {\frac {N^{1/2}}{4}}\left(1+{\frac {1}{\sqrt {2}}}+{\frac {1}{2}}+\cdots \right)}
このアルゴリズムは改良の余地がある。kが未知であるとして、 O ( N k ) 1 / 2 {\displaystyle O({\frac {N}{k}})^{1/2}} のオーダーで解を見付けることができる。このことから、このアルゴリズムは衝突問題を解く目的で使用できる。