zoukankan      html  css  js  c++  java
  • SICP 1.11-1.13

    1.11

    递归版本

     1 (define (f n) (cond ((< n 3) n)
     2                     (else (+ (f (- n 1))
     3                              (* (f (- n 2)) 2)
     4                              (* (f (- n 3)) 2)))))
     5 
     6 迭代版本
     7 
     8 (define (f n)
     9   (if (< n 3)
    10       3
    11       (xf n 1 2 3 3)))
    12 
    13 
    14 (define (xf n a b c d)
    15   (cond ((= n d) (max a b c))
    16         (else (cond ((= 0 (remainder d 3)) (xf n (+ (* 3 a)
    17                                               (* 2 b)
    18                                               c) b c (+ 1 d)))
    19               ((= 1 (remainder d 3)) (xf n a (+ (* 3 b)
    20                                                 (* 2 c)
    21                                                 a) c (+ 1 d)))
    22               ((= 2 (remainder d 3)) (xf n a b (+ (* 3 c)
    23                                                   (* 2 a)
    24                                                   b) (+ 1 d)))))))


    1.12

    1 (define (pascal h n)
    2   (cond ((= h 1) 1)
    3         ((= n 1) 1)
    4         ((= h n) 1)
    5         (else (+ (pascal (- h 1) n)
    6                  (pascal (- h 1) (- n 1))))))



    1.13
    证明题看着都烦...
    作为补偿我来实现一下1.12的迭代版本 --------> 失败

    经过百度发现了一个公式  ------->   (row col)=row!/(col!⋅(row−col)!)   -----> 有这个公式的话那实现起来很简单,就不演示了...

  • 相关阅读:
    MySQL递归查询树状表的子节点、父节点
    ajax传递参数给springmvc总结[转]
    转:Java中String与byte[]的转换
    easymock的用法
    java的反射
    spring的依赖注入
    等页面加载完
    ajax请求
    对象的复制
    springJDBC
  • 原文地址:https://www.cnblogs.com/nzhl/p/5450367.html
Copyright © 2011-2022 走看看