我想知道什么是可计算的“简明”定义?我之所以这样问,是因为我对什么是可计算的,什么是不可计算的感到困惑。
某些东西只有在停止时才是可计算的吗?例如
function foo(){
while(true);
}
是不可计算的,仅仅因为它永远不会停止?或者我混淆了可计算性的定义和停顿问题?
谢谢
发布于 2011-11-13 22:01:10
如果给定某种(通常是纯理论的)计算机的能力,你可以证明有一个算法可以在有限的时间内解决这个问题,那么某些东西是形式上可计算的。
因此,可计算性是计算机和问题的属性,而不是一段代码的属性。
研究可计算性的两个有趣的结果:
发布于 2011-11-13 21:46:29
可计算性不是程序的属性。可计算性是数学问题的一个属性,它意味着存在一种算法,通过为问题的每个实例提供正确的答案来有效地解决问题。
停顿问题是不可计算的,因为不存在完全解决它的算法(对于图灵完全编程语言),但它不是可计算性的定义。
https://stackoverflow.com/questions/8114980
复制