我正在阅读有关算法定义的注释,它有两个要求,我不知道它们之间有什么区别
确定性:每条指令应清晰和明确。 (I found a source with exactly the same statement)
我从资源中有5个要求:输入,输出,确定性,有限性,有效性。我可以理解除确定性以外的其他4个。如果上述方法不准确,谁能提供更好的定义?
从上面我只怀疑应该考虑至少两个细微之处...
对于以下答案的结论:definiteness = defined(clear) + only_one(unambiguous)
。
答案 0 :(得分:2)
算法应清晰明确。它的每个步骤(或阶段)及其输入/输出都应该明确,并且只能导致一种含义。
例如,如果一个步骤是将两个整数相加,则必须同时定义“整数”和“加法”运算:例如,我们不能使用同一符号来表示一个位置的加法和在其他位置的乘法。
答案 1 :(得分:2)
如果呈现给受过良好教育的人,则文本应允许他完全按照您所想的方式(执行相同的步骤,获得相同的结果)来模拟手工执行。
答案 2 :(得分:1)
这仅表示算法中的指令应仅具有一种解释。而且,解释应该很明显。
“重复步骤1至4几次”这样的陈述不符合标准,因为“几次”可能意味着对不同人员的尝试次数不同。
另一方面,类似“重复步骤1至4直到 x 等于 y ”这样的语句,其中 x 和 y 是算法中的一些参数,确实是明确和明确的。
答案 3 :(得分:1)
当您不太了解某个作者提供的术语定义时,寻找该术语的其他定义通常会很有帮助。我特别喜欢wiktionary.org中的“定”的那个:
- 毫无疑问。
在这种情况下, clear 变得可以理解,而明确变得具有单一含义。