ochalog

RubyとMediaWikiとIRCが好き。

SICP: Exercise 1.12

パスカルの三角形の値を求める手続きを書く問題。

  • 三角形の辺はすべて 1。
  • 中の数は上の数の和。
  • 再帰的処理で。

mn 列の数字を求めるとして、

(define (pascal m n)
  (cond ((or (< n 1) (> n m)) 0)
        ((or (= n 1) (= n m)) 1)
        (else (+ (pascal (- m 1) (- n 1))
                 (pascal (- m 1) n)))))

という感じでどうか。