- ベストアンサー
この式はどう解釈するのですか?
Write a recursive method to compute the binomial coefficient according to the definition. 二項式の係数を定義に従って計算する再帰的メソッドを書きなさい。 {1 if k=0 or k=n [n] { [ ]={(n-1) (n-1) [k] {( )+( )otherwise(もしそうでなければ) {(k-1) ( k ) プログラムを組む以前の問題なんですが… これはどんな風な動作になるのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
どの段階でとまどっているかわからないので一般的なことを書きます。 二項係数の再帰的計算ですね。 たとえば(a + b)を2乗したとき、 a^2 + 2ab + b^2 となり、3乗したとき、 a^3 + 3a^2b + 3ab^2 + b^3 となりますね。 これの各項のa、bをとっぱらって、係数だけ抜き出すと、 1 2 1 1 3 3 1 となっています。 4乗以上も同様ですが、これらには次の関係があります。 1 1 /\/\ 1 2 1 /\/\/\ 1 3 3 1 両端が1、それ以外は上にある二つを足していく… ということです。 (読みにくいと思うけど、見当で読んでね) 「n乗の(0番目から始まって)k番目の係数」というのが (n k)を縦に書く記号になります。 ついでながら、「再帰」メソッドの一般的な書き方は methoc(...){ if(再帰を抜けるとき)return xxx; (再帰するとき)method()を使った計算; } のようになります。(わかりにくいかな…) 問題の式の場合、 「再帰を抜けるとき」が「k=0 or k=n 」の条件であり、 再帰するときがotherwiseとなります。
お礼
初期値を代入した時点で既にとまどってました。 そんな式だったんですね! 予想もつきませんでした。 とても分かりやすい説明でした。 これで出来なかったら私は本物のアホでしょう。(^^) ありがとうございました!