1
อัลกอริทึมของโกรเวอร์: สิ่งใดที่ต้องป้อนเข้าสู่ Oracle
ฉันสับสนเกี่ยวกับสิ่งที่ป้อนเข้าสู่ Oracle ในอัลกอริทึมของ Grover เราไม่จำเป็นต้องใส่สิ่งที่เรากำลังมองหาและจะหาสิ่งที่เรากำลังมองหาเพื่อ Oracle นอกเหนือจากรัฐควอนตัมซ้อน? ตัวอย่างเช่นสมมติว่าเรามีรายชื่อของผู้คน {"Alice", "Bob", "Corey", "Dio"} และเราต้องการค้นหาว่า "Dio" อยู่ในรายการหรือไม่ จากนั้น Oracle ควรใช้เป็นอินพุตและเอาต์พุตrangle) ฉันเข้าใจดีว่า1/2(|00⟩+|01⟩+|10⟩+|11⟩)1/2(|00⟩+|01⟩+|10⟩+|11⟩)1/2(|00\rangle + |01\rangle + |10\rangle + |11\rangle)1/2(|00⟩+|01⟩+|10⟩−|11⟩)1/2(|00⟩+|01⟩+|10⟩−|11⟩)1/2(|00\rangle + |01\rangle + |10\rangle - |11\rangle) แต่เราไม่จำเป็นต้องป้อนคำว่า "Dio" และรายการ {"Alice", "Bob", "Corey", "Dio"} ไปยัง Oracle หรือไม่ ไม่เช่นนั้น Oracle จะคืนค่าเอาต์พุตได้อย่างไร มันไม่ได้กล่าวถึงอย่างชัดเจนเนื่องจาก Oracle เป็นกล่องดำและเราไม่ต้องคิดเกี่ยวกับวิธีการใช้งานหรือไม่ ความเข้าใจของฉันเกี่ยวกับ Oracle คือ …