【问题标题】:Binary Search and Cube roots二分搜索和立方根
【发布时间】:2014-09-17 02:43:50
【问题描述】:

假设我们想使用二分搜索找到一个值的立方根。我们想用二分搜索算法进行一系列猜测,使我们的猜测变得越来越精确,直到它们达到足够接近的阈值。我不确定从哪里开始解决这个问题。

(define (cube-root n)
    (define lo 0)
    (define hi 0)
    (define mid (/ n 2)
    ;Execute algorithm for more precise guess

【问题讨论】:

  • 似乎有什么问题?只要您知道如何为给定数字选择lohi,剩下的就很简单了,可以迭代或递归地实现。您还需要确定足够好解决方案的标准(即精度)。

标签: scheme binary-search square-root


【解决方案1】:

这是我的实现,将一些位替换为<???>,以便您自己填写:

(define (cube-root n)
  (define (helper lo hi)
    (define mid <???>)
    (define cube-mid <???>)
    (cond ((< (abs (- cube-mid n)) <???>) mid)
          (<???> (helper lo mid))
          (else (helper mid hi))))
  (if (negative? n)
      (helper <???> <???>)
      (helper <???> <???>)))

【讨论】:

  • mid 和 cube-mid 有什么区别?
  • 查看之后的行,看看cube-mid的目的是什么。注意它与n的比较?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多