2010-06-02から1日間の記事一覧

第2種スターリング数をO(nk/2)で求める関数

第2種スターリング数S(n,k)は、n個の区別できる要素をk個の集合(区別できない箱)にまとめる場合の組合せの数を表す。主な注意点は以下の通り。 n=0のとき、0組に分ける場合が1通りで、それ以外が0通りになる。 n>0のとき、0組に分けられないので、k=0では0通…

第2種スターリング数とフィボナッチ数

第2種スターリング数を求める関数を書いていた。 ;n<20程度にする (defun stirling-2nd-kind (n k) (cond ((= n k) 1) ((zerop k) 0) ((< n k) 0) (t (+ (stirling (1- n) (1- k)) (* k (stirling (1- n) k)))))) これだと,多重再帰となって非常に計算が遅…