【问题标题】:Could an algorithm be non deterministic or ambiguous?算法可能是不确定的或模棱两可的吗?
【发布时间】:2019-10-04 04:19:34
【问题描述】:

CLSR 说算法是一个“定义明确的过程”。“定义明确”究竟是什么意思。这是否意味着它不应该是模棱两可或不确定的。如果是,算法模棱两可或非确定性可能意味着什么。

【问题讨论】:

    标签: algorithm turing-machines ambiguity non-deterministic


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      • 2020-05-18
      • 1970-01-01
      • 2019-09-10
      相关资源
      最近更新 更多