Algorithm 算法可能是不确定的或不明确的吗?

Algorithm 算法可能是不确定的或不明确的吗?,algorithm,turing-machines,ambiguity,non-deterministic,Algorithm,Turing Machines,Ambiguity,Non Deterministic,CLSR说一个算法是一个“定义良好的过程”。什么是“定义良好”呢。这是否意味着它不应该是模糊的或不确定的。如果答案是肯定的,那么什么是不明确或不确定的算法。一个“定义良好的过程”仅仅意味着它应该包含一系列处理每个可能输入变化的步骤。 例如,在决策树中,您需要考虑所有情况,直到到达叶子为止。以查找列表最大值的算法为例: 当您只遇到整数时,它应该怎么做?你如何比较它们?如果尝试比较数组中两个类型不同的元素,会发生什么情况?数组中的元素可以接受的值是否有限制?阵列的大小如何? 因此,你可以在这些方面

CLSR说一个算法是一个“定义良好的过程”。什么是“定义良好”呢。这是否意味着它不应该是模糊的或不确定的。如果答案是肯定的,那么什么是不明确或不确定的算法。

一个“定义良好的过程”仅仅意味着它应该包含一系列处理每个可能输入变化的步骤。
例如,在决策树中,您需要考虑所有情况,直到到达叶子为止。以查找列表最大值的算法为例:
当您只遇到整数时,它应该怎么做?你如何比较它们?如果尝试比较数组中两个类型不同的元素,会发生什么情况?数组中的元素可以接受的值是否有限制?阵列的大小如何?
因此,你可以在这些方面找到大量其他问题。算法需要能够回答所有问题,因此是“定义良好的”。
非确定性算法实际上是CS中一个非常大的领域。有关更多示例,请查看此维基百科链接。这些算法可以在后续运行中为相同的输入生成不同的输出。例如,使用抛硬币打印“正面”或“反面”的东西。因此,根据您的随机数,输出将在多次运行中更改。
将此与每次为相同输入生成相同输出的确定性算法进行比较