練習問題 3.11 (2)

本文中で与えられた再帰的な定義で n個の中からm個を選ぶ場合の数 ¥left(¥begin{array}n¥¥m¥end{array}¥right) を求める関数 comb を定義せよ,という問題。再帰的な定義は本文(p.51)をみること(書くのが面倒なので)。

# let rec comb n m =
if m = 0 then 1
else if n = m then 1
else comb (n-1) m + comb (n-1) (m-1)
;;
val comb : int -> int -> int = <fun>
# comb 5 3;;
# comb 2 1;;
- : int = 2
カテゴリー: OCaml パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください