所以我对Pseudocode / Algorithms进行了测试。
有一个真/假的陈述:An Algorithm must always have an output.
我将F
作为我的答案,但老师将其标记错误。
我想到了[Python]:
x = 100/4
上面的代码只定义了x
。不输出任何东西。 (它不能被认为是一种算法吗?)
我想到的另一个例子是:
for x in x:
y = 9999999999^9999999999/9999999
类似的东西^可能会加热计算机并为用户产生温暖,或类似的东西。不完全输出任何东西。
答案 0 :(得分:10)
"算法具有一个或多个输出,即与输入具有指定关系的量" (Knuth 1973:5)。
答案 1 :(得分:1)
这是一个非常复杂的主题,因为算法是直观定义的。例如,人们可能也会争辩说,任何可以作为图灵机实现的东西都是算法。但图灵机的语言是递归可枚举的。或者换句话说:图灵机不需要终止,因此不会产生任何输出(如果我们将输出定义为机器终止后磁带上的输出)。
另一方面,您提出的算法会输出一些内容。您的算法的要点是输出直接存储在变量(x
或y
)中。算法在终止时甚至在处理过程中输出一些内容。但输出并不一定需要由return
- 语句或写入控制台来生成。
总结一下:
算法终止并生成输出,也可以直接存储在变量或其他地方 - 甚至可能是void
- 函数中的副作用。算法可能不会终止,因此不会产生输出。但我想这一点远远超出了问题的范围。