1.2(2)

1.2.2

;;; 1.11 ;;;
;f(n) = n if n < 3
;f(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3) if n >= 3
; recursive
(define (f n)
  (if (< n 3) n 
      (+ (f (- n 1))
	 (* 2 (f (- n 2)))
	 (* 3 (f (- n 3))))))

;iterative
(define (f-iter n one two three)
  (define (new-one)
    (+ one (* 2 two) (* 3 three)))
  (if (= n 0) three
      (f-iter (- n 1) (new-one) one two)))
(define (f2 n)
  (f-iter n 2 1 0))

;;; 1.12 ;;;
;(n, k) = 1 (if k = 0 or k = n)
;(n, k) = (n - 1, k - 1) + (n - 1, k)
(define (element n k)
  (if (or (= k 0) (= k n))
      1
      (+ (element (- n 1) (- k 1)) (element (- n 1) k))))
; 出力するもんがないからこれで終わり

証明は挟み込みがうまいことできんかった.数学脳劣化発現
こっから2章まで結構キツそう