Мене плутає те, що потрібно ввести в Oracle в алгоритмі Гровера.
Чи не потрібно нам вводити те, що ми шукаємо, і де знайти те, що ми шукаємо в Oracle, окрім суперпозиціонованих квантових станів?
Наприклад, припустимо, що у нас є список імен людей {"Аліса", "Боб", "Корі", "Діо"}, і ми хочемо знайти, чи є в списку "Діо". Потім Oracle повинен взяти як вхід і вихід . Я якось це розумію.
Але чи не потрібно також нам вводити слово "Dio" та список {"Аліса", "Боб", "Корі", "Діо"} до Oracle? В іншому випадку, як Oracle може повернути вихід? Чи це прямо не згадується, оскільки Oracle - це чорна скринька, і нам не потрібно думати, як її реалізувати?
Моє розуміння щодо Oracle:
- Oracle має можливість розпізнавати, чи є в списку слово "Dio".
- Для цього Oracle приймає суперпозиційні квантові стани як вхідні дані, де кожен квантовий стан являє собою індекс списку.
- Отже, введення для Oracle означає, що перевірте, чи є слово "Dio" в індексі 0 списку, і поверніться якщо так, і поверніться інакше.
- У нашому випадку Oracle повертається .
- А як щодо списку та слова?