문제
다음과 같은 문제가 Solvable입니다. 입력과 정확히 그 중 정확히 정확히 멈추는 지식을 가진 두 가지 프로그램이 중지를 결정합니다.
프로그램 중 하나를 결정할 프로그램이 중지됩니다.
P(Program x,Program y){
if(x will be halted)
then return 1;
else
then return 2;
}
.
우리는 1이면 프로그램 X가 정지 될 것이라는 것을 알고 있기 때문에 우리는 중단 될 것임을 알고 있기 때문에, 프로그램 x가 정지 될 것입니다. 온화한 프로그램 Y가 중지됩니다.
다음은 새로운 프로그램 콜 D
를 구성합니다.D(X,Y){
if(P(X,Y) == 2)
D will halt;
else
while(1)//D will not halt;
}
.
는 arritbrary 프로그램을 둡니다.
그래서 우리가 d (d, s)
d가 중단되면D가 멈추지 않으면
D가 중단되지 않으면D가 멈추지 않습니다
문제와 동일한 모순을 닫습니다.
그러나 그 질문은 그것이 solvable이라고 말했습니다.
해결책
중요한 측면에서 시작하십시오. $ x $ 및 $ y $ 그들은 멈추게 될 것인가? 질문을 정의 할 수 있도록 시스템에 대한 특정 입력을 지정해야합니다 (예 : 질문은 " $ x, y $ 정확히 $ \ epsilon $ 에서 정확히 종료됩니다. "또는 어쩌면"주어진 ... 항상 정확히 항상 입력으로 그 자체로 정지 ... " )
나는 당신을 혼란스럽게하는 것을 본다. 문제는 실제로 solvable입니다. $ p $ 모두 $ x $ 및 $ y $ 및 답변을 먼저 멈추십시오.
해결 방법의 문제점은 $ P $ 이 $ x, y $ 정확히 중 하나가 중지하고 다른 하나는 그렇지 않습니다.
$ d $ 에 적절한 입력이 $ p $ 에 적절한 입력이어야합니다. 이제 $ d (d, s) $ 이라고 불리는 것을 알아보십시오. $ d $ 이 올바른 출력을 반환하는지 확인하려면 적절한 입력이 있어야합니다. $ d $ < / span> 또는 $ s $ 중지! 하지만 ... $ s $ $ d $ 도 $ P $ 에 대한 적절한 입력이 아니므로 $ d $ . 따라서 $ d (d, s) $ 에서 출력을 의지 할 수는 없습니다