算法是否需要输出?

时间:2016-11-21 14:35:16

标签: algorithm pseudocode

所以我对Pseudocode / Algorithms进行了测试。

有一个真/假的陈述:An Algorithm must always have an output.

我将F作为我的答案,但老师将其标记错误。

我想到了[Python]:

x = 100/4

上面的代码只定义了x。不输出任何东西。 (它不能被认为是一种算法吗?)

我想到的另一个例子是:

for x in x: y = 9999999999^9999999999/9999999

类似的东西^可能会加热计算机并为用户产生温暖,或类似的东西。不完全输出任何东西。

2 个答案:

答案 0 :(得分:10)

  

"算法具有一个或多个输出,即与输入具有指定关系的量" (Knuth 1973:5)。

--Reference

答案 1 :(得分:1)

这是一个非常复杂的主题,因为算法是直观定义的。例如,人们可能也会争辩说,任何可以作为图灵机实现的东西都是算法。但图灵机的语言是递归可枚举的。或者换句话说:图灵机不需要终止,因此不会产生任何输出(如果我们将输出定义为机器终止后磁带上的输出)。

另一方面,您提出的算法会输出一些内容。您的算法的要点是输出直接存储在变量(xy)中。算法在终止时甚至在处理过程中输出一些内容。但输出并不一定需要由return - 语句或写入控制台来生成。

总结一下:
算法终止并生成输出,也可以直接存储在变量或其他地方 - 甚至可能是void - 函数中的副作用。算法可能不会终止,因此不会产生输出。但我想这一点远远超出了问题的范围。