함수 f 는 단순히 비트 문자열의 임의의 부울 함수입니다. f:{0,1}n→{0,1} . [1] , [2] 또는 [3] 과 같은 암호화를 깨는 응용 프로그램의 경우 실제로는 '데이터베이스 조회'가 아니며 전체 데이터베이스를 양자 회로로 저장해야하지만 오히려 다음과 같은 기능이 필요합니다.
x↦{1,0,if SHA-256(x)=y;otherwise,
y
x↦{1,0,if 2x≡y(mod22048−1942289),otherwise,
클래식 컴퓨터에서도 더 빠르게 뒤집을 수있는 구조 를 가지고 있습니다.
는 어떤 회로도 될 수 있기 때문에 특정 비용에 대한 문제는 일반적으로 대답 할 수 없습니다. 그것은 고전 회로로 양자 회로 를 만드는 문제 일뿐 입니다. 그러나 일반적으로 위의 예에서와 같이 함수 는 클래식 컴퓨터에서 평가하기에 매우 저렴하므로 Grover 알고리즘에 대한 다른 모든 것이 예산 범위 내에있는 양자 컴퓨터에 특히 부담을주지 않아야합니다.ff
유일한 일반적인 비용 은 추가 조건부 NOT 게이트 여기서 는 xor이고 추가 보조 큐 비트입니다. 특히 회로 의 내장 와의 회로 , 우리가 그것을 적용하는 경우 다음 할 함께 초기 상태에서 보조 큐 비트와 여기서fC:|a⟩|b⟩→|a⟩|a⊕b⟩
⊕F:|x⟩|a⟩|junk⟩↦|x⟩|a⊕f(x)⟩|junk′⟩
Cf|x⟩|−⟩=H|1⟩=(1/2–√)(|0⟩−|1⟩)H 하다 마드 게이트입니다
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′⟩,
f(x)=11⊕f(x)=0F|x⟩|−⟩|junk⟩=−|x⟩|−⟩|junk′⟩,
F|x⟩|−⟩|junk⟩=(−1)f(x)|x⟩|−⟩|junk′⟩.