IF X ≠ 0 GOTO A
Z ← Z + 1
IF Z ≠ 0 GOTO B
[A] X ← X – 1
Y ← Y + 1
IF X ≠ 0 GOTO A
[B] Y ← Y + 1
Y ← Y + 1
Y ← Y + 1
由于y被复合了4次,我想出了y = x + 4。这可能是错的。
答案 0 :(得分:0)
我假设它是某个函数y(x,z)
,因为Y
是唯一分配但未在条件中使用的值。我还假设X
必须是自然数,否则此函数将进入无限循环(尝试X = -1
)。
1: IF X ≠ 0 GOTO A
2: Z ← Z + 1
3: IF Z ≠ 0 GOTO B
4: [A] X ← X – 1
5: Y ← Y + 1
6: IF X ≠ 0 GOTO A
7: [B] Y ← Y + 1
8: Y ← Y + 1
9: Y ← Y + 1
Y
总是按第7-8行递增3次,因此Y
必须至少为3。
=> y = 3 + ...
假设x > 0, z = n
:
第1行跳转到第4行,并递增Y
X
次(递减X
,然后在X >= 0
,第4-6行循环播放。因此,Y
必须至少为X
。
=> y = x + 3
假设x = 0
:
在这种情况下,第1行将进入第2行。Z
从其初始值开始递增,然后进行检查。如果Z
不等于零,Y = 3
(第3,7-9行)。如果Z
等于零,这意味着初始值为Z = -1
,那么Y = X + 3
(第3行将落到第4-9行)。
因此此函数(如果形式为y(x,z)
)是以下形式的分段函数:
y(x,y) = {3 if Z = -1, X + 3 otherwise}, such that X is an element of the natural numbers.
请注意,这只是猜测。如果没有明确的输入和输出(正如你所说的那本书没有表明),它们就可以进行解释了。