Grover의 알고리즘으로 Oracle에 입력해야 할 내용이 혼란 스럽습니다.
중첩 된 양자 상태 외에 찾고자하는 것을 입력하고 오라클에 찾고자하는 곳을 찾을 필요가 없습니까?
예를 들어, 사람들의 이름 목록 { "Alice", "Bob", "Corey", "Dio"}가 있고 "Dio"가 목록에 있는지 확인하려고합니다. 그렇다면 오라클은 입력 및 출력으로 . 나는 그것을 이해합니다.
그러나 "Dio"라는 단어와 { "Alice", "Bob", "Corey", "Dio"} 목록을 Oracle에 입력 할 필요도 없습니까? 그렇지 않으면 오라클은 어떻게 출력을 반환 할 수 있습니까? 오라클은 블랙 박스이기 때문에 명시 적으로 언급되지 않았으며 구현 방법에 대해 생각할 필요가 없습니까?
오라클에 대한 나의 이해는
- 오라클은 "Dio"라는 단어가 목록에 있는지 인식 할 수 있습니다.
- 그렇게하기 위해 Oracle은 중첩 된 양자 상태를 입력으로 취합니다. 여기서 각 양자 상태는 목록의 인덱스를 나타냅니다.
- 입력 오라클에게 "Dio"라는 단어가 목록의 인덱스 0에 있는지 확인하고 반환 예인 경우 반환 그렇지 않으면.
- 우리의 경우, 오라클은 .
- 그러나 목록과 단어는 어떻습니까?
1
같은 방식으로 표현되지는 않았지만 귀하의 질문은 다음과 거의 동일하다고 생각합니다. Grover의 알고리즘 : 목록은 어디에 있습니까?
—
DaftWullie