问题 不存在算法可以判断任何程序是否会停止
假设存在程序p(x,y) x是任何一段程序,y是程序的一种输入
假设程序p可以判断x在输入y下是否会停止(或者说会不会陷入死循环) 陷入死循环返回false否则返回true
那么我们构造程序q(x)
q(x){//x是任何一段程序
if ( p(x,x) == true )
while(1);//死循环;
else return true;
}
现在我们来考虑 q(q) 是否会陷入死循环
如果会 则p(q,q)==false, q(q)返回true;
如果不会 则p(q,q)==true,q(q)陷入死循环;
晕 竟然搞成这样了。
看来这样的程序p是不存在了。
假设存在程序p(x,y) x是任何一段程序,y是程序的一种输入
假设程序p可以判断x在输入y下是否会停止(或者说会不会陷入死循环) 陷入死循环返回false否则返回true
那么我们构造程序q(x)
q(x){//x是任何一段程序
if ( p(x,x) == true )
while(1);//死循环;
else return true;
}
现在我们来考虑 q(q) 是否会陷入死循环
如果会 则p(q,q)==false, q(q)返回true;
如果不会 则p(q,q)==true,q(q)陷入死循环;
晕 竟然搞成这样了。
看来这样的程序p是不存在了。