SICP 习题1.11

原创 2016年06月01日 02:19:50

函数 f 是递归实现

函数 f1 是迭代实现

(define (f n)
  (cond ((< n 3) n)
        (else (+ (f (- n 1))
                 (* 2 (f (- n 2)))
                 (* 3 (f (- n 3)))))))

(define (f1 n)
  (f2 2 1 0 n))

(define (f2 a b c n)
  (cond ((< n 2) n)
        ((= n 2) a)
        (else (f2 (+ a (* 2 b) (* 3 c)) a b (- n 1)))))
版权声明:本文为博主原创文章,未经博主允许不得转载。

SICP 习题 (1.6) 解题总结:对if语句的特殊处理

SICP 习题 1.6 还是讲的正则序和应用序,问题是从if过程的讨论开始的,习题说到名叫Alyssa P. Hacker的人觉的不需要为if提供一种特殊形式,可以直接用常规过程调用cond来实现。 ...
  • keyboardOTA
  • keyboardOTA
  • 2013年08月14日 06:58
  • 4092

SICP 习题 (1.11) 解题总结:加强版斐波那契数

SICP 习题 1.11相对简单一点,主要是里面没有太多数学问题,数学还是有一点,让这些数学天才们不使用数学样例它们可能宁愿不写书了。题目要求我们定义一个过程实现函数f,f的规则是:如果n如果n>=3...
  • keyboardOTA
  • keyboardOTA
  • 2013年09月12日 00:10
  • 3977

SICP 习题(1.5)解题总结:应用序和正则序

习题1.5 主要讲的是函数参数的求值方式,包括应用序和正则序。解题前如果发现自己对应用序和正则序还不是太清楚,就需要重新看看1.1.5节“过程应用的代换模型”,对应用序和正则序有了较清楚的了解后解习题...
  • keyboardOTA
  • keyboardOTA
  • 2013年08月09日 00:45
  • 4466

SICP 习题 (1.13) 解题总结

SICP习题1.13要求证明Fib(n)是最接近 的整数,其中。题目还有一个提示,提示解题者利用归纳法和斐波那契数的定义证明Fib(n)=说实话,面对这道题我是完败,完全没有思路那种。不过,在讲计算机...
  • keyboardOTA
  • keyboardOTA
  • 2013年10月10日 00:19
  • 5940

SICP 习题2.42 八皇后问题

想不到第一次写八皇后问题是用的scm写代码的途中遇到一个错误,用let错了,用define对了,应该是编译器的原因,和nil差不多。(define (accumulate op initial seq...
  • NMfloat
  • NMfloat
  • 2016年07月01日 00:24
  • 181

SICP 习题 (2.21)解题总结: map的使用

SICP 习题 2.21 开始引入了map,准确来讲,是这道题目前的文章内容开始引入了map。为了完成本习题,甚至说为了完成本文以后的阅读,请读者一定要理解清楚map的概念,正如书中所说,“map是一...
  • keyboardOTA
  • keyboardOTA
  • 2015年01月10日 20:44
  • 1575

SICP 习题 (1.40)解题总结

SICP 习题1.40 是一道题干很简单,但是看起来很复杂,本质其实比较简单的一道题。题目原题如下:请定义一个过程cubic, 它和newtons-method过程一起使用在下面形式的表达式里:(ne...
  • keyboardOTA
  • keyboardOTA
  • 2014年06月26日 00:11
  • 6437

SICP 习题 (2.22)解题总结: 迭代过程中的列表处理

SICP 习题 2.22是习题2.21的后续题目,题目中讲到叫Louis Reasoner的人想重写suqare-list过程,希望使用迭代计算过程,而不是递归计算过程,有关迭代计算过程和递归计算过程...
  • keyboardOTA
  • keyboardOTA
  • 2015年01月12日 00:07
  • 2282

SICP 习题 (1.14)解题总结

SICP 习题 1.14要求计算出过程count-change的增长阶。count-change是书中1.2.2节讲解的用于计算零钱找换方案的过程。要解答习题1.14,首先你需要理解count-cha...
  • keyboardOTA
  • keyboardOTA
  • 2013年10月13日 00:05
  • 5623

SICP 习题 (1.16)解题总结

SICP习题1.16要求将书中递归形式的求幂过程fast-expt改写成迭代的。 如果对我们之前对于递归计算过程和迭代计算过程理解的比较透彻的话做这道题问题不大。 首先看看书中的fast-expt过程...
  • keyboardOTA
  • keyboardOTA
  • 2013年10月16日 00:24
  • 3599
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SICP 习题1.11
举报原因:
原因补充:

(最多只允许输入30个字)