어떤 알고리즘으로도 쓸 수없는 숫자의 존재를 증명하는 방법은 무엇입니까?


14

문제가 있습니다.

프로그램이 존재하지 않는 실수가 무한정 길게 실행되고 해당 숫자의 10 진수를 씁니다.

나는 그것을 Halting 문제로 줄여서 해결할 수 있다고 생각하지만 그렇게하는 방법을 모른다.

추가 연습을 위해 비슷한 문제에 대한 링크를 부탁드립니다.




Yuval Filmus는주의 깊게 읽어야 할 흥미로운 답변을 제공했습니다. 중지 문제 는 다른 방법이 아니라 문제 를 줄이기 위해 시도 할 수있는 "문제"입니다 (질문에 가설을 세울 때 문제를 중지로 줄이십시오).
케찰코아틀

인용 된 섹션의 문법을 수정하여이 질문을 개선 할 수 있습니까? 파싱하기가 정말 어렵다는 것을 알았습니다.
JimmyJames

@JimmyJames, 나는 러시아어로 번역하기 위해 최선을 다했습니다 Объясните в одно предложение, почему существует такое вещественное число, для которого не существует программы, которая будет работать бесконечно долго и выписывать цифры его представления в десятичной системе счисления. 누군가 내 번역을 향상시키기를 바랍니다.
20:55에

답변:


18

세바스티안이 지적했듯이, 수많은 프로그램이 있습니다. 프로그램리스트를 작성하기 위해 이들을 나열하십시오. 목록은 무한하지만 길다. 각 프로그램은 R로 하나의 숫자를 생성합니다. 이로부터 우리는 R에서 (무한하지만 계산 가능한) 숫자 목록을 만들 수 있습니다. 이제 우리는 Cantor의 대각선 인수를 직접 적용 하여 여전히 다른 숫자가 있어야 함을 증명할 수 있습니다.

그런데 알고리즘에 (유한 한) 인수가있는 경우 각 프로그램에 인수가없는 "더 긴"프로그램 목록으로 다시 작성할 수 있습니다.

"실수가 인수로 허용되는 경우"라는 의견과 관련하여 질문의 전제는 잘못되었습니다. 그런 다음 R의 모든 숫자를 생성 할 수 있습니다. 누군가 숫자를 찾고 say이라고 말하고 계산할 수 없다고 주장하면 다음과 같은 "알고리즘"이 있습니다.

func(number):
    return number

func (皮)를 호출


17

실제로 훨씬 간단합니다. 셀 수있는 알고리즘은 많지 않습니다. 그러나 실제로 많은 수의 실수가 있습니다. 따라서 당신이 그것들을 짝지 으려고하면, 일부 실제 숫자는 걸려있을 것입니다.


9

누구의 숫자를 고려 케이숫자는 1 만약에 케이빈 입력 상태에서 튜링 머신이 정지되고 0멈추지 않으면 이 실수의 자릿수를 생성 할 수 있으면 정지 문제를 해결할 수 있습니다.


1

이 숫자는 무한히 긴 숫자로 소수점 뒤에 멈추지 않는 모든 튜링 기계를 인코딩합니다. 이 숫자를 사용하면 정지 문제를 해결할 수 있습니다.

숫자로 TM을 "검색"하고 병렬로 실행할 수 있습니다. TM이 정지하면 정지합니다. 그렇지 않으면 "숫자에서 코드를 찾으십시오".

증명에는 많은 수정 사항이 있으며 첫 번째 복잡한 교훈 후에 재현 할 수 있어야합니다 :-)


이것은 Chaitin 상수 와 밀접한 관련이 있습니다.
David Richerby

아, 이해하기가 훨씬 쉬워 ...
smrt28

-2

함수 y = 2x로 경로에서 점이 이동합니다. 가로 좌표가 계산할 수없는 숫자 인 경우 포인트가 경로를 계산할 수있는 방법이 없지만 계속 진행됩니다. 따라서 계산 불가능한 숫자가 존재할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.