みさご解体新書

二項定理

解説/アルゴリズム

(a+b)2(a+b)^2 を展開すると、 a2+2ab+b2a^2 + 2ab + b^2 になるが、この展開方法について考えてみる。

(a+b)2(a+b)^2(a+b)(a+b)(a+b)(a+b) のことだが、この式を更に展開するには各因数から a または b を取り出し、それらを掛け合わして a2a^2abab のような項を作る。そして、組み合わせてできる項を全て列挙して足し合わせたものが a2+2ab+b2a^2 + 2ab + b^2 になる。

因数 1 因数 2 掛け合わせてできた項
aa aa a2a^2
aa bb abab
bb aa abab
bb bb b2b^2

たとえば 2 つの因数から 2 つとも a を選ぶと a2a^2 、 2 つとも b を選ぶと b2b^2 になる。

a2a^2b2b^2 の取り出し方はこれしかないので係数が 1 になる。

一方、 ab ab の取り出し方は 2 パターンあるので係数が 2 になる。

次は (a+b)3(a+b)^3 の展開方法について考えてみる。

因数 1 因数 2 因数 3 掛け合わせた数
aa aa aa a3a^3
bb bb bb b3b^3
aa aa bb a2ba^2b
aa bb aa a2ba^2b
bb aa aa a2ba^2b
aa bb bb ab2ab^2
bb aa bb ab2ab^2
bb bb aa ab2ab^2

a3a^3b3b^3 の取り出し方は 1 通り、 a2ba^2bab2ab^2 は 3 通りあるので、 (a+b)3(a+b)^3a3+3a2b+3ab2+b3a^3 + 3a^2b + 3ab^2 + b^3 に展開されることがわかる。

ここで重要なポイントがあり、どの項も次数が必ず 3 になる。

上記の表の通り、各因数から a または b を 3 回取り出して掛け合わせているので、 (a+b)3(a+b)^3 を展開した各項の次数は必ず 3 になる。

a の数 b の数 a と b の数(次数)
a3a^3 3 0 3
3a2b3a^2b 2 1 3
3ab23ab^2 1 2 3
b3b^3 0 3 3

(a+b)3(a+b)^3 を展開した式では、次数が 3 になる組み合わせの項すべてが並ぶことになる。

この規則性が分かっていれば、 (a+b)n(a+b)^n を展開してできる式の、係数以外の情報は簡単に知ることができ、例えば (a+b)4(a+b)^4 の係数を除いた式は下記の通り。

a4+a3b+a2b2+ab3+b4a^4 + a^3b + a^2b^2 + ab^3 + b^4

次数が 4 になる a と b の組み合わせを列挙して足し合わせている。

たとえば a が 4 であれば b が 0、a が 3 あれば b が 1 のように、次数の数が n で a の数が r だと、b の数が n - r になる。

次は係数の求め方について考えてみる。

たとえば (a+b)3(a+b)^3 を展開して出てくる項 3ab23ab^2 では b が 2 つあるが、これは因数から a か b を選択するとき、 3 回中 2 回 b を選択したということになる。

3 回中 2 回 b を選択してできる項の数は 3C2_3 \mathrm{C} _2 のように組み合わせで計算可能。

(a+b)3(a+b)^3 を展開すると、 b の数がそれぞれ 0 個、 1 個、 2 個、 3 個の項がでてくるわけだから、係数はそれぞれ組み合わせの計算である 3C0_3 \mathrm{C} _0 , 3C1_3 \mathrm{C} _1 , 3C2_3 \mathrm{C} _2 , 3C3_3 \mathrm{C} _3 で算出できる。

b の数 係数の計算式 係数
0 3C0_3 \mathrm{C} _0 1
1 3C1_3 \mathrm{C} _1 3
2 3C2_3 \mathrm{C} _2 3
3 3C3_3 \mathrm{C} _3 1

これで各項の係数の計算方法がわかったので、先に説明した各項の次数の計算と合わせると、 (a+b)3(a+b)^3 の展開式は下記のとおりになる。

(a+b)3=3C0a3+3C1a2b+3C2ab2+3C3b3(a+b)^3 = {_3 \mathrm{C} _0a^3} + {_3 \mathrm{C} _1a^2b} + {_3 \mathrm{C} _2ab^2} + {_3 \mathrm{C} _3b^3}

べき乗部分を n に変えて一般化すると下記のような式になり、これを二項定理と呼ぶ。

(a+b)n=nC0an+nC1an1b+nC2an2b2+...nCn1abn1+nCnbn(a+b)^n = {_n \mathrm{C} _0a^n} + {_n \mathrm{C} _1a^{n-1}b} + {_n \mathrm{C} _2a^{n-2}b^2} + ... {_n \mathrm{C} _{n-1}ab^{n-1}} + {_n \mathrm{C} _nb^n}

ここで、各項の係数の計算方法である組み合わせ nC0_n \mathrm{C} _0 , nC1_n \mathrm{C} _1 , nC2_n \mathrm{C} _2 , ... , nCn1_n \mathrm{C} _{n-1} , nCn_n \mathrm{C} _n二項係数と呼ぶ。

パスカルの三角形

      0C0
    1C0 1C1
  2C0 2C1 2C2
3C0 3C1 3C2 3C3
   1
  1 1
 1 2 1
1 3 3 1

二項係数の組み合わせ数を三角形上に並べたものをパスカルの三角形と呼ぶ。

上端、左端、右端は 1、それ以外の場所は自身の左上と右上の値を足した数になり、たとえば 3C1=2C0+2C1_3 \mathrm{C} _1 = {_2\mathrm{C} _0} + {_2 \mathrm{C} _1} になる。

これを利用して組み合わせ数を計算するコードは 別記事 に記載している。