ฟังก์ชั่นเป็นเพียงฟังก์ชั่นบูลโดยพลการของสตริงบิต:\} สำหรับแอปพลิเคชันที่จะทำลายการเข้ารหัสเช่น[1] , [2] , หรือ[3]นี่ไม่ใช่การค้นหาฐานข้อมูลจริง ๆ ซึ่งจะทำให้การจัดเก็บฐานข้อมูลทั้งหมดเป็นวงจรควอนตัม แต่อย่างใด แต่เป็นหน้าที่เช่นff:{0,1}n→{0,1}
x↦{1,0,if SHA-256(x)=y;otherwise,
สำหรับ fixedซึ่งไม่มีโครงสร้างเราสามารถใช้ประโยชน์จากการค้นหาแบบคลาสสิกซึ่งแตกต่างจากการพูดฟังก์ชั่นy
x↦{1,0,if 2x≡y(mod22048−1942289),otherwise,
ซึ่งมีโครงสร้างที่สามารถเอาเปรียบเพื่อพลิกกลับเร็วขึ้นแม้ในคอมพิวเตอร์แบบดั้งเดิม
คำถามโดยเฉพาะค่าใช้จ่ายที่ไม่สามารถตอบได้ในทั่วไปเพราะสามารถใด ๆ วงจรมันเป็นเพียงเรื่องของการทำวงจรควอนตัมออกจากวงจรคลาสสิก แต่โดยปกติตามตัวอย่างข้างต้นฟังก์ชันมีราคาถูกมากในการประเมินบนคอมพิวเตอร์แบบดั้งเดิมดังนั้นจึงไม่ควรสร้างภาระที่หนักหน่วงในคอมพิวเตอร์ควอนตัมที่ทุกอย่างเกี่ยวกับอัลกอริทึมของ Grover อยู่ในงบประมาณของคุณff
ค่าใช้จ่ายทั่วไปเพียงอย่างเดียวที่ด้านบนของเป็นเงื่อนไขพิเศษไม่ใช่เกทโดยที่คือ xor และส่วนเสริมพิเศษสำหรับมัน หากเรามีวงจรสร้างขึ้นจากและวงจรสำหรับจากนั้นถ้าเราใช้กับร่วมกับ qubit เสริมในตอนแรกในรัฐโดยที่fC:|a⟩|b⟩→|a⟩|a⊕b⟩
⊕F:|x⟩|a⟩|junk⟩↦|x⟩|a⊕f(x)⟩|junk′⟩
Cf|x⟩|−⟩=H|1⟩=(1/2–√)(|0⟩−|1⟩)H เป็นประตู Hadamard จากนั้นเราจะได้รับ
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′⟩.