停机问题
过程使用伪码证明
停机问题
不存在这样一个程序(算法),它能够计算任何程序(算法)在给定输入下是否会结束(停机)。
停机问题的证明差不多是这样的
先假设存在一个程序(算法),它能够计算任何程序(算法)在任何给定输入下是否会结束(停机)。
设这个程序为A(prog,input)
bool A(prog,input) {
if(prog结束于input)
return true; else
returnfalse; }
因为它能够计算任何程序(算法)在任何给定输入下是否会结束(停机)。
假设有如下程序B
bool B(input) { if(A(input,input))
{
while(1);
return true;
}
else
return false;
}
A(B,B)也能判断B停不停机,//因为A能计算任何程序是否停机
假设B能停机,则A返回true,则B不能停机,矛盾
假设B不能停机,则A返回false,B能停机,矛盾
故假设不成立
文章出处:http://www.cnblogs.com/yin52133/
本文可自行转载,但转载时记得给出原文链接