【问题标题】:Binary Search to guess real numbers二分搜索猜测实数
【发布时间】:2014-01-19 10:18:44
【问题描述】:

考虑到一个相当普遍的问题 - 我正在考虑一个整数,你能在 O(log n) 时间内猜到它吗,因为我会以“高”、“低”或“就是那个!”来回答你的猜测。 - 我遇到了一个让我难以理解的细微变化问题:

我在想一个介于 1 和 N 之间的正实数。猜猜我的 在 O(log log log N) 时间内将数字精确到小数点后一位。

我尝试通过猜测 10N 而不是 N 来解决这个问题,但这仍然不会给我 O(log log log N) 运行时。欢迎对此提出任何和所有意见。

谢谢

【问题讨论】:

  • 提示:X=10+Log(x) ...
  • “到小数点后一位”---我猜这意味着正确的第一个数字和十的正确幂?我假设我们得到了N?
  • 什么是“小数点后一位”?一个信号无花果?
  • 您确定该约束吗? O(log log N) 似乎可行,但不是 O(log log log N)。
  • 据我理解,“小数点后一位”是指数字的整数部分和第 1/10 位的值。因此,对于数字 466.1220,“小数点后一位”表示 466.1。不幸的是,这是我在准备算法时遇到的一个随机问题,我无法验证这条线的意思。这只是我的理解。 @MarkRansom我也得出了类似的结论-整数部分为O(log N),小数部分为另一个O(log N),对吗?就像我说的那样,除了问题之外,我别无他法:)

标签: algorithm search binary-search


【解决方案1】:

假设“一位小数”表示一位有效数字,则在 1 和 n 之间有 O(log(n)) 种可能的猜测。 1, 2, 3, ..., 10, 20, 30, ..., 100, 200, 300, ... 通过这些可能性进行二分搜索将在 O(log(log(n))时间。为了便于编码,这可以改为对数量级进行二进制搜索,然后对第一个数字进行二进制搜索。但是,从信息上讲不可能使用 O(log(log(log( n))) 猜测以确定 O(log(n)) 种可能性之一。

示例:我正在考虑一个介于 1 和 10000 之间的数字。

是 100 吗?更高。 是1000吗?降低。 现在我们知道了数量级。

是500吗?更高。 是700吗?更高。 是800吗?更高。 是 900。

【讨论】:

    【解决方案2】:

    名义尺度变量(也称为分类变量)是一个没有特定变量的变量 不同可能性之间的关系:对于这些类型的变量,它没有任何意义 说其中一个比其他任何一个“更大”或“更好”,这绝对没有任何意义 平均它们。典型的例子是“眼睛颜色”。眼睛可以是蓝色、绿色和棕色,其中 其他可能性,但没有任何一种比其他任何一种“更好”。结果,感觉真的 谈论“平均眼睛颜色”很奇怪。同样,性别也是名义上的:男性没有好坏之分 与女性相比,尝试谈论“平均性别”也没有任何意义。简而言之,名义规模 变量是那些你可以说的关于不同可能性的唯一事情是它们是 不同的。就是这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      • 2015-08-18
      相关资源
      最近更新 更多