SICP 1.11-1.13

原创 2016年08月31日 15:10:05

习题1.11
1.递归算法

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

2.迭代算法

(define (f n)
  (define (f-iter n1 n2 n3 step-count)
     (if (< step-count 0)
         n3
         (f-iter n2
                 n3
                 (+ (* 3 n1)
                    (* 2 n2)
                    n3)
                 (- step-count 1))))
  (if (< n 3)
      n
      (f-iter 0 1 2 (- n 3)))) ;此处已经进行了前3次运算,所以减3

习题1.12

(define (pascal row col)
  (cond ((or (< col 1)
             (< row 1))
         0)
        ((or (= col 1)
             (= row col)
             (< row 3))
         1)
        (else (+ (pascal (- row 1) (- col 1))
                 (pascal (- row 1) col)))))

习题1.13

SICP 折腾之开发环境

SICP 开发环境
  • zlf_jack
  • zlf_jack
  • 2014年11月01日 10:43
  • 1302

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

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

SICP 习题 (1.13) 解题总结

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

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

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

SICP学习小结

我一开始在看CSAPP,刚看完第一章,然后看见知乎上萧井陌发表的关于编程入门的新文章。他的推荐是先掌握一门语言比如Python然后看SICP,接着才是CSAPP。我查了一下发现只有400多页,就打算2...
  • viredery
  • viredery
  • 2015年04月13日 18:57
  • 848

SICP第三章学习笔记

第三章 模块化、对象和状态(Modularity, Objects, and State)     当我们需要模拟真实物理系统的程序时,我们可以采用基于被模拟的结构去设计程序的结构,这样,在需要针对系...
  • viredery
  • viredery
  • 2015年04月06日 14:55
  • 351

SICP 习题 (1.35)解题总结

SICP 习题 1.35要求我们证明黄金分割率φ 是变换函数 x => 1+ 1/x 的不动点,然后利用这一事实通过过程fixed-point 计算出φ的值。首先是有关函数的不动点,这个概念需要理解清...
  • keyboardOTA
  • keyboardOTA
  • 2014年04月29日 00:10
  • 3464

【找回数学的感觉】1 再版汉诺塔等

尤其在学过函数式编程之后,更加觉得想在计算机技术上上一个台阶必须得有非常扎实的数学基础。然而太多学生大学开始就慢慢淡忘了数学,和高中比起来根本不是一个境界。于是我决心开设这样一个系列,我每天都会练习,...
  • NoMasp
  • NoMasp
  • 2015年06月21日 12:07
  • 2582

SICP 习题 (2.3) 解题总结:用复合数据表示矩形

SICP 习题 2.3 要求我们实现一种平面矩形的表示,定义获取数据的相关选择函数。然后定义几个过程来计算矩形的周长和面积。接着题目还要求我们实现矩形的另一种表示方式,要求这个新的矩形表示方式同样适用...
  • keyboardOTA
  • keyboardOTA
  • 2014年09月24日 00:16
  • 3406

SICP 习题 (1.22) 解题总结

SICP 习题 1.22 要求改进题中列举出来检查素数的过程,用来求1000, 10000, 100 000,还有1000 000附近的素数,然后比较求这些素数的时间,看是否符合θ(√n)的复杂度。 ...
  • keyboardOTA
  • keyboardOTA
  • 2014年01月19日 21:40
  • 2007
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SICP 1.11-1.13
举报原因:
原因补充:

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