Ich bin verwirrt darüber, was ich in Grovers Algorithmus in Oracle eingeben soll.
Müssen wir nicht zusätzlich zu den überlagerten Quantenzuständen eingeben, wonach wir suchen und wo wir finden, wonach wir suchen?
Angenommen, wir haben eine Liste mit den Namen der Personen {"Alice", "Bob", "Corey", "Dio"} und möchten herausfinden, ob "Dio" auf der Liste steht. Dann sollte Oracle nehmen als eine Eingabe und Ausgabe 1 / 2 ( | 00 ⟩ + | 01 ⟩ + | 10 ⟩ - | 11 ⟩ ) . Ich verstehe das irgendwie.
Aber müssen wir nicht auch das Wort "Dio" und die Liste {"Alice", "Bob", "Corey", "Dio"} in Oracle eingeben? Wie kann Oracle sonst die Ausgabe zurückgeben? Wird es nicht explizit erwähnt, da Oracle eine Black Box ist und wir nicht darüber nachdenken müssen, wie es implementiert werden soll?
Mein Verständnis von Oracle ist:
- Oracle kann erkennen, ob das Wort "Dio" in der Liste enthalten ist.
- Zu diesem Zweck verwendet Oracle die überlagerten Quantenzustände als Eingabe, wobei jeder Quantenzustand den Index der Liste darstellt.
- Also, Eingabe zu Oracle Mitteln, zu überprüfen , ob das Wort „Dio“ ist in dem Index 0 der Liste und Rückkehr - | 00 ⟩ wenn ja und Rückgabe | 00 ⟩ anderweitig.
- In unserem Fall Oracle liefert .
- Aber was ist mit der Liste und dem Wort?
Antworten:
quelle