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。這可能是錯誤的。試圖找出解決方案,這個程序計算什麼功能?
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。這可能是錯誤的。試圖找出解決方案,這個程序計算什麼功能?
我認爲這是一些函數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
總是遞增3次通過線7-8,所以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.
注意,這僅僅是一個猜測。如果沒有定義的輸入和輸出(正如你所說的書中沒有指出的那樣),它們就可以解釋。
輸入是什麼? –
沒有給出任何輸入。只有指示才能找到程序計算的功能。來自Davis,Sigal,Weyuker的複雜性和語言。 – user134547