Je ne sais pas quoi saisir dans Oracle dans l'algorithme de Grover.
N'avons-nous pas besoin de saisir ce que nous recherchons et où trouver ce que nous recherchons pour Oracle, en plus des états quantiques superposés?
Par exemple, supposons que nous ayons une liste de noms de personnes {"Alice", "Bob", "Corey", "Dio"}, et nous voulons savoir si "Dio" est sur la liste. Ensuite, Oracle devrait prendre comme entrée et sortie 1 / 2 ( | 00 ⟩ + | 01 ⟩ + | 10 ⟩ - | 11 ⟩ ) . Je comprends en quelque sorte cela.
Mais ne faut-il pas aussi saisir le mot "Dio" et la liste {"Alice", "Bob", "Corey", "Dio"} dans Oracle? Sinon, comment Oracle peut-il renvoyer la sortie? N'est-il pas explicitement mentionné, car Oracle est une boîte noire et nous n'avons pas à réfléchir à la façon de l'implémenter?
Ma compréhension d'Oracle est,
- Oracle a la capacité de reconnaître si le mot "Dio" est dans la liste.
- Pour ce faire, Oracle prend les états quantiques superposés en entrée, où chaque état quantique représente l'index de la liste.
- Alors, entrez aux moyens Oracle, vérifier si le mot « Dio » dans l'index 0 de la liste et retour - | 00 ⟩ si oui et retour | 00 ⟩ autrement.
- Mais qu'en est-il de la liste et du mot?
Réponses:
la source