关于算法定义的确定性?

时间:2018-12-16 12:18:57

标签: algorithm

我正在阅读有关算法定义的注释,它有两个要求,我不知道它们之间有什么区别

  

确定性:每条指令应清晰明确。 (I found a source with exactly the same statement

我从资源中有5个要求:输入,输出,确定性,有限性,有效性。我可以理解除确定性以外的其他4个。如果上述方法不准确,谁能提供更好的定义?

从上面我只怀疑应该考虑至少两个细微之处...


对于以下答案的结论:definiteness = defined(clear) + only_one(unambiguous)

4 个答案:

答案 0 :(得分:2)

算法应清晰明确。它的每个步骤(或阶段)及其输入/输出都应该明确,并且只能导致一种含义。

例如,如果一个步骤是将两个整数相加,则必须同时定义“整数”和“加法”运算:例如,我们不能使用同一符号来表示一个位置的加法和在其他位置的乘法。

答案 1 :(得分:2)

如果呈现给受过良好教育的人,则文本应允许他完全按照您所想的方式(执行相同的步骤,获得相同的结果)来模拟手工执行。

答案 2 :(得分:1)

这仅表示算法中的指令应仅具有一种解释。而且,解释应该很明显。

“重复步骤1至4几次”这样的陈述不符合标准,因为“几次”可能意味着对不同人员的尝试次数不同。

另一方面,类似“重复步骤1至4直到 x 等于 y ”这样的语句,其中 x y 是算法中的一些参数,确实是明确和明确的。

答案 3 :(得分:1)

当您不太了解某个作者提供的术语定义时,寻找该术语的其他定义通常会很有帮助。我特别喜欢wiktionary.org中的“定”的那个:

  
      
  1. 毫无疑问。
  2.   

在这种情况下, clear 变得可以理解,而明确变得具有单一含义