比较可计算?

时间:2011-04-30 23:09:49

标签: computer-science

考虑程序比较(p1,p2),其中:

Input: source code for procedures p1, and p2.
Output: True if p1 and p2 always produce identical outputs; False otherwise

比较(p1,p2)是否可计算?为什么或者为什么不?

有人解释这意味着什么?

2 个答案:

答案 0 :(得分:2)

一般来说,事实并非如此。确切的任务是确定p1和p2是否停止并产生相同的输出。因为如果p1和p2停止(或者甚至是其中之一)它是不可计算的,所以比较也是不可计算的。

但是,如果p1和p2被约束到所有可计算函数集合的某个子集(例如没有递归的函数,即没有循环),即使在线性时间内,也可以计算比较。

答案 1 :(得分:1)

这不可计算。

我不记得确切的原因,但这是一个特殊情况,你将compare本身送入compare,你可以用来证明它不可能写出这样的功能