f işlevi sadece bir bit dizesinin keyfi bir boolean işlevidir: f:{0,1}n→{0,1} . [1] , [2] veya [3] gibi kriptografiyi bozan uygulamalar için , bu aslında bir 'veritabanı araması' değil, tüm veritabanını bir şekilde kuantum devresi olarak kaydetmeyi gerektirecek, aksine bir fonksiyon gibi
x↦{1,0,if SHA-256(x)=y;otherwise,
Sabit için y aksine, bir klasik arama için istismar hiçbir yapıya sahiptir, fonksiyon, demek
x↦{1,0,if 2x≡y(mod22048−1942289),otherwise,
Klasik bir bilgisayarda bile daha hızlı ters çevirmek için kullanılabilecek bir yapıya sahiptir .
Belirli bir maliyet sorusu genel olarak cevaplanamaz, çünkü f herhangi bir devre olabilir - bu sadece klasik bir devreden kuantum devre yapmakla ilgilidir . Ancak, genellikle, yukarıdaki örnekte olduğu gibi, f işlevi klasik bir bilgisayarda değerlendirmek için çok ucuz olduğundan, Grover'in algoritması ile ilgili her şeyin bütçeniz dahilinde olduğu kuantum bir bilgisayarda özellikle ağır bir yük oluşturmamalı.
Üstünde sadece genel maliyet f ekstra koşullu DEĞİL kapısı C:|a⟩|b⟩→|a⟩|a⊕b⟩
nerede ⊕ xor ve bunun için ekstra bir yan qubit olduğunu. Özellikle, bir F:|x⟩|a⟩|junk⟩↦|x⟩|a⊕f(x)⟩|junk′⟩
dışına inşa C ve devre f , o zaman biz bunu uygularsanız |x⟩ başlangıçta devlette yardımcı bir qubit ile birlikte |−⟩=H|1⟩=(1/2–√)(|0⟩−|1⟩)neredeHbir Hadamard kapısı, o zaman olsun
F|x⟩|−⟩|junk⟩=12–√(F|x⟩|0⟩|junk⟩−F|x⟩|1⟩|junk⟩)=12–√(|x⟩|f(x)⟩|junk′⟩−|x⟩|1⊕f(x)⟩|junk′⟩).
f(x)=01⊕f(x)=1F|x⟩|−⟩|junk⟩=|x⟩|−⟩|junk′⟩,
whereas if f(x)=1 then 1⊕f(x)=0, so F|x⟩|−⟩|junk⟩=−|x⟩|−⟩|junk′⟩,
and thus in general F|x⟩|−⟩|junk⟩=(−1)f(x)|x⟩|−⟩|junk′⟩.