我们说我有两个python函数f
和g
:
def f(x):
y = x**2 + 1
return y
def g(x):
a = x**2
b = a + 1
return b
这两个函数在功能上明显相同(都返回x**2 + 1
)。
我对功能等效的定义如下:
如果两个函数f
和g
在给定相同输入的情况下始终生成相同的输出,则f
和g
在功能上等效。
此外,我们假设f
和g
中没有涉及全局变量。
是否可以自动确定(无需人工检查)python函数f
和g
在功能上是否相同?
答案 0 :(得分:12)
按Rice's Theorem,不。如果你能做到这一点,你可以解决halting problem。 (即使f
和g
始终保证停止,也是如此。)
答案 1 :(得分:2)