首页 > 其他 > 详细

Exercise 1.15 sine

时间:2014-09-18 12:52:03      阅读:326      评论:0      收藏:0      [点我收藏+]

题目:

  The sine of an angle (specified in radians) can be computed by making use of the approximation sin x ? x if x is sufficiently small, and the trigonometric identity. 

sin(r)=3*sin(r/3)-4*(sin(r/3))^3

to reduce the size of the argument of sin. (For purposes of this exercise an angle is considered ``sufficiently small‘‘ if its magnitude is not greater than 0.1 radians.) These ideas are incorporated in the following procedures:

(define (cube x) (* x x x))
(define (p x) (- (* 3 x) (* 4 (cube x))))
(define (sine angle)
  (if   (not (> (abs angle) 0.1))
    angle
    (p (sine (/ angle 3.0)))))

a. How many times is the procedure p applied when (sine 12.15) is evaluated?

b. What is the order of growth in space and number of steps (as a function of a) used by the process generated by the sine procedure when (sine a) is evaluated?

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

函数sine是tree recursive,所以树的高度决定了复杂度。而树的高度为logN。因此,复杂度为 2^logN 即O(N)

Exercise 1.15 sine

原文:http://www.cnblogs.com/linghuaichong/p/3978919.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!