近似数字查找算法

时间:2018-07-31 19:43:38

标签: algorithm search logarithm

考虑以下游戏:

  • John和Peter在数字 n 上达成共识。
  • John在1到 n 之间选择一个数字 x
  • Peter在1到 n 之间进行一系列的猜测 k 。对于每个猜测:
    • 如果 x /2≤ k ≤2 x ,则Peter获胜。
    • 否则,约翰告诉彼得 x 是否小于 k

彼得想赢得最少的猜想。

有一些显而易见的解决方案需要最坏情况的 O (log n )猜测,但是一位朋友告诉我,有一种解决方案具有比这更好的渐近行为。我的朋友对吗?

1 个答案:

答案 0 :(得分:5)

您的朋友是对的。 x 的可能值可以划分为以下范围:{1,2,3,4},{5,6,…,19,20},{21,22,…,83,84 }等,其中每个范围都有一个覆盖整个范围的“中心”元素;例如,如果 x 在21到84之间,则 k = 42是一个成功的猜测。有 O (log n )这样的范围,Peter可以使用二进制搜索在 O (loglog )中找到正确的范围n )猜测。