【问题标题】:Examples of puzzles [closed]谜题的例子[关闭]
【发布时间】:2014-08-07 22:31:04
【问题描述】:

因此,时间复杂度为线性的 PUZZLE 示例是在数组中搜索特定值的问题:很容易证明你不能用少于 n 次的比较来完成,我们有一个算法它在完全线性的时间 O(n) 内解决了这个问题。

【问题讨论】:

  • 这不是一个适合 SO 的问题;请自行研究,并查看帮助中心中的材料。
  • 您对哪些可能是正确的示例有任何猜测吗?如果您证明您自己对问题进行了一些思考,我们可以帮助您理解为什么这些是正确或错误的。

标签: arrays algorithm sorting computer-science puzzle


【解决方案1】:

二次:给定一个包含 N 个整数的列表和一个任意的布尔函数 f 对整数对,确定是否存在一对整数 x, y 我的列表使得 f(x, y) = true

指数:给定 N 个整数的列表和整数集合上的任意布尔函数 f,确定是否存在从列表中取出的整数集合 S,使得 f(S) = true

在每种情况下,我们可以通过考虑所有对/子集来解决问题。在每种情况下,如果函数是任意的并作为输入提供,我们不能做得更好。时间复杂度当然受函数编码的影响,但这是固定的 w.r.t.列表的大小。

您可能会反对我们可以构建一个通用的“函数理解器”来更智能地查找对/子集。然而,这是不可能的,原因与停止问题无法确定的原因基本相同:对于任意程序,很难判断它在做什么(或者,对于任意函数,很难判断它在计算什么)。

【讨论】:

    猜你喜欢
    • 2014-07-27
    • 2021-11-27
    • 2011-10-01
    • 2019-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    相关资源
    最近更新 更多