ฉันสับสนเกี่ยวกับสิ่งที่ป้อนเข้าสู่ Oracle ในอัลกอริทึมของ Grover
เราไม่จำเป็นต้องใส่สิ่งที่เรากำลังมองหาและจะหาสิ่งที่เรากำลังมองหาเพื่อ Oracle นอกเหนือจากรัฐควอนตัมซ้อน?
ตัวอย่างเช่นสมมติว่าเรามีรายชื่อของผู้คน {"Alice", "Bob", "Corey", "Dio"} และเราต้องการค้นหาว่า "Dio" อยู่ในรายการหรือไม่ จากนั้น Oracle ควรใช้เป็นอินพุตและเอาต์พุตrangle) ฉันเข้าใจดีว่า
แต่เราไม่จำเป็นต้องป้อนคำว่า "Dio" และรายการ {"Alice", "Bob", "Corey", "Dio"} ไปยัง Oracle หรือไม่ ไม่เช่นนั้น Oracle จะคืนค่าเอาต์พุตได้อย่างไร มันไม่ได้กล่าวถึงอย่างชัดเจนเนื่องจาก Oracle เป็นกล่องดำและเราไม่ต้องคิดเกี่ยวกับวิธีการใช้งานหรือไม่
ความเข้าใจของฉันเกี่ยวกับ Oracle คือ
- Oracle มีความสามารถในการจดจำว่าคำว่า "Dio" อยู่ในรายการหรือไม่
- ในการทำเช่นนั้น Oracle จะใช้สถานะควอนตัมซ้อนเป็นอินพุตซึ่งแต่ละสถานะควอนตัมแสดงดัชนีของรายการ
- ดังนั้นการป้อนข้อมูลไปยัง Oracle วิธีการตรวจสอบว่าคำว่า "ดิโอ" ที่อยู่ในดัชนี 0 ของรายการและการกลับมาถ้าใช่และผลตอบแทนมิฉะนั้น
- ในกรณีของเรา, Oracle ผลตอบแทนที่rangle)
- แต่สิ่งที่เกี่ยวกับรายการและคำว่า?