这些算法是否相同?

时间:2015-05-28 09:00:50

标签: algorithm equivalent

E是逻辑变量(T / F),P和Q是程序

(P)
If E then R
Else
S

(Q)
bool c  = E
bool d = not E
While  c do
    Begin
    R
    c = d
    End
While  d do
    Begin
    S
    d = c
    End

我们知道,相同的输入意味着相同的输出,所以它们是弱等价的,但执行时间数(R)呢?我不确定R是(R,S)还是E?

1 个答案:

答案 0 :(得分:0)

就目前而言,根据相同的起始条件,两种变体在两种变体中都满足R和S的意义上是等同的。

但是第二种变体也设置了两个变量c和d,显然它们稍后会以某种方式使用,对于其他变量,它们在循环中的设置中没有用处。因此,第二个变体具有额外的独立后果(c和d被定义并设置为false)。

如果S和R可以取消整个算法,则该附加部分变得不独立。