허락하다 알파벳, 즉 비어 있지 않은 유한 집합이어야합니다. 문자열은 다음에서 나오는 요소 (문자)의 유한 시퀀스입니다.. 예로서, 이진 알파벳이고 이 알파벳의 문자열입니다.
일반적으로 하나 이상의 요소를 포함하며 요소의 정확한 수 중요하지 않습니다. 기껏해야 다른 상수로 끝납니다. 즉, 이진 알파벳, 숫자, 라틴 알파벳 또는 유니 코드를 사용하더라도 실제로 중요하지 않습니다.
알파벳의 크기가 중요한 상황의 예가 있습니까?
내가 관심이있는 이유는 내가 그러한 예 중 하나를 발견했기 때문입니다.
모든 알파벳 우리는 무작위 오라클을 정의합니다 무작위 요소를 반환하는 오라클이되어야합니다. 모든 요소에 대해 동일한 기회가 리턴되도록 모든 요소에 대한 기회는 ).
일부 알파벳 과 -크기가 다를 수 있습니다.-액세스 가능한 Oracle 머신 클래스를 고려하십시오. . 우리는이 클래스의 오라클 머신에 관심이 있습니다.. 즉, 오라클을 변환하고 싶습니다 오라클로 튜링 머신 사용. 우리는 그러한 Turing 기계를 변환 프로그램이라고 부를 것입니다.
허락하다 과 . 변환 중 오라클로 쉽다 : 우리는 질의한다 두 번, 결과를 다음과 같이 변환합니다. , , , . 분명히이 프로그램은 시각.
이제하자 과 . 이 두 언어의 경우 모든 변환 프로그램은 시간, 즉 전환 프로그램이 없습니다 에 그 실행 시각.
이것은 모순에 의해 입증 될 수 있습니다 : 변환 프로그램이 있다고 가정하십시오. ...에서 에 에 실행 시각. 이것은 그런 최대한 활용 에 쿼리 .
보다 적게 만들 수있다 특정 실행 경로의 쿼리. 변환 프로그램을 쉽게 만들 수 있습니다 그 실행 오라클 쿼리 횟수를 추적합니다. 허락하다 오라클 쿼리 수입니다. 그런 다음 추가 오라클 쿼리, 결과를 버리고, 무엇을 반환 돌아 왔을 것이다.
이런 식으로 정확하게 실행 경로 . 바로 그거죠 이 실행 경로 중 귀국 . 하나,정수가 아니므로 모순이 있습니다. 따라서 그러한 프로그램이 존재하지 않습니다.
더 일반적으로 알파벳이 있다면 과 와 과 에서 변환 프로그램이 존재합니다. 에 모든 소수가 소인수 분해에 나타나는 경우에만 또한의 주요 인수 분해에 나타납니다 (따라서 인수 분해에서 소수의 지수는 중요하지 않습니다).
그 결과 우리가 길이의 이진 문자열을 생성하는 난수 생성기가 있다면 , 난수 생성기를 사용하여 숫자를 생성 할 수 없습니다. 정확히 같은 확률로.
나는 슈퍼마켓에 서서 저녁 식사를 위해 무엇을 먹을지 고민하면서 위의 문제를 생각해 냈습니다. 코인 토스를 사용하여 선택 A, B 및 C를 결정할 수 있는지 궁금했습니다. 결과적으로 불가능합니다.