Tôi bối rối về những gì để nhập vào Oracle trong thuật toán của Grover.
Chúng ta không cần phải nhập những gì chúng ta đang tìm kiếm và nơi để tìm thấy những gì chúng ta đang tìm kiếm cho Oracle, ngoài các trạng thái lượng tử chồng chất?
Ví dụ: giả sử chúng tôi có một danh sách tên của mọi người {"Alice", "Bob", "Corey", "Dio"} và chúng tôi muốn tìm xem "Dio" có trong danh sách không. Sau đó, Oracle nên mất như một đầu vào và đầu ra 1 / 2 ( | 00 ⟩ + | 01 ⟩ + | 10 ⟩ - | 11 ⟩ ) . Tôi hiểu điều đó
Nhưng không phải chúng ta cũng cần nhập từ "Dio" và danh sách {"Alice", "Bob", "Corey", "Dio"} vào Oracle? Nếu không, làm thế nào Oracle có thể trả lại đầu ra? Có phải nó không được đề cập rõ ràng vì Oracle là một hộp đen và chúng ta không phải suy nghĩ về cách thực hiện nó?
Hiểu biết của tôi về Oracle là,
- Oracle có khả năng nhận ra nếu từ "Dio" có trong danh sách.
- Để làm như vậy, Oracle lấy các trạng thái lượng tử chồng chất làm đầu vào, trong đó mỗi trạng thái lượng tử đại diện cho chỉ số của danh sách.
- Vì vậy, đầu vào để phương tiện Oracle, kiểm tra nếu từ "Dio" là trong chỉ số 0 của danh sách và lợi nhuận - | 00 ⟩ nếu có và lợi nhuận | 00 ⟩ khác.
- Trong trường hợp của chúng tôi, Oracle trả .
- Nhưng những gì về danh sách và từ?