Rを利用して二項定理をシミュレーションします。
始めに定理の証明から。
二項定理とは、非負の整数 \(n\) と任意の実数(または複素数)\(a\),\(b\) に対して、以下の等式が成り立つという定理です。
\[(a+b)^ n =\displaystyle\sum_{k=0}^n \dbinom{n}{k}a^{n−k} b^ k\]
ここで、\(\dbinom{n}{k}\) は二項係数、定義は、
\[\dbinom{n}{k}=\dfrac{n!}{k!(n−k)!}\]
数学的帰納法により証明します。
まず、\(n=0\) の場合について考えます。
- 左辺: \((a+b)^0 =1\)
- 右辺: \(\displaystyle\sum_{k=0}^0\dbinom{0}{k}a^{0-k}b^k=\dbinom{0}{0}a^{0-0}b^0=\dfrac{0!}{0!(0-0)!}a^0b^0=\dfrac{1}{1\cdot1}\cdot1\cdot1 =1\)
従って、\(n=0\) の場合、二項定理は成り立ちます。
次に、\(n=1\) の場合について考えます。
- 左辺: \((a+b)^1 =a+b\)
- 右辺: \(\begin{eqnarray}\displaystyle\sum_{k=0}^1\dbinom{1}{k}a^{1-k}b^k&=&\dbinom{1}{0}a^{1-0}b^0+\dbinom{1}{1}a^{1-1}b^1=\dfrac{1!}{0!(1-0)!}a^1b^0+\dfrac{1!}{1!(1-1)!}a^0b^1\\&=&\dfrac{1}{1\cdot1}a+\dfrac{1}{1\cdot1}b =a+b\end{eqnarray}\)
従って、\(n=1\) の場合も二項定理は成り立ちます。
続いて、ある非負の整数 \(m\) において、二項定理が成り立つと仮定します。つまり、
\[(a+b)^ m = \displaystyle\sum_{k=0}^m\dbinom{m}{k} a^{m−k} b^k\]
が成り立つと仮定します。
この仮定のもとでは、\(n=m+1\) の場合にも二項定理が成り立つことを示します。
\[(a+b)^{ m+1} =(a+b)(a+b)^m\]
前述の仮定を用いると、
\[(a+b)^{m+1} =(a+b)(a+b)^{m}=(a+b)\left(\displaystyle\sum_{k=0}^m\dbinom{m}{k}a^{ m−k} b^k \right)\]
分配法則により、
\[(a+b)^{m+1} =a\left(\displaystyle\sum_{k=0}^m\dbinom{m}{k} a^{ m−k} b^k \right)+b\left(\displaystyle\sum_{k=0}^m\dbinom{m}{k} a^{m−k} b^k \right)\]
右辺を展開します。
- 右辺第1項: \(a\left(\displaystyle\sum_{ k=0}^m \dbinom{m}{k}a^{m−k} b^k \right)=\displaystyle\sum_{k=0}^m\dbinom{m}{k}a\cdota^{ m−k} b^k=\displaystyle\sum_{k=0}^m\dbinom{m}{k}a^{ m−k+1} b^k =\displaystyle\sum_{ k=0}^m\dbinom{m}{k} a^{ (m+1)−k} b^k\)
- 右辺第2項: \(b\left(\displaystyle\sum_{ k=0}^m \dbinom{m}{k}a^{m−k} b^k \right)=\displaystyle\sum_{k=0}^m\dbinom{m}{k}a^{ m−k}b\cdot b^{k}=\displaystyle\sum_{k=0}^m\dbinom{m}{k}a^{ m−k} b^{k+1}\)
ここで、右辺第2項の総和(\(\sum\))のインデックスを \(j=k+1\) と置換すると、\(k=j−1\) となり、\(k\) が \(0\) から \(m\) までの総和とするとき、\(j\) は \(1\) から \(m+1\) まで総和となります。
\[\displaystyle\sum_{k=0}^m\dbinom{m}{k}a^{m−k} b^{ k+1} =\displaystyle\sum_{j=1}^{m+1}\dbinom{m}{j-1}a^{ m−(j−1)} b^{(j-1)+1} =\displaystyle\sum_{j=1}^{m+1}\dbinom{m}{j-1}a^{ (m+1)−j} b^j\]
よって右辺第2項は、
\[\displaystyle\sum_{k=0}^m\dbinom{m}{k}a^{m−k} b^{ k+1} =\displaystyle\sum_{k=1}^{m+1}\dbinom{m}{k-1}a^{ (m+1)−k} b^k\] と変換できます。
従って、
\[(a+b)^{m+1} =\displaystyle\sum_{k=0}^m\dbinom{m}{k}a^{ (m+1)−k} b^k +\displaystyle\sum_{k=1}^{m+1}\dbinom{m}{k-1}a^{ (m+1)−k} b^ k\]
右辺第1項を \(k=0\) と \(k=1,\cdots,m\) に分けますと
\[\displaystyle\sum_{k=0}^m\dbinom{m}{k}a^{ (m+1)−k} b^k= \dbinom{m}{0}a^{m+1} b^ 0 +\displaystyle\sum_{k=1}^m \dbinom{m}{k}a^{ (m+1)−k} b^k \] 右辺第2項を \(k=1,\cdots,m\) と \(k=m+1\) に分けますと
\[\displaystyle\sum_{k=1}^{m+1}\dbinom{m}{k-1}a^{ (m+1)−k} b^ k=\displaystyle\sum_{ k=1}^m\dbinom{m}{k-1} a^{ (m+1)−k} b^ k +\dbinom{m}{m}a^ 0 b^{ m+1}\]
まとめますと、
\[ \begin{eqnarray} (a+b)^{m+1} &=&\dbinom{m}{0}a^{m+1} b^ 0 +\displaystyle\sum_{k=1}^m \dbinom{m}{k}a^{ (m+1)−k} b^k +\displaystyle\sum_{ k=1}^m\dbinom{m}{k-1} a^{ (m+1)−k} b^ k +\dbinom{m}{m}a^ 0 b^{ m+1}\\ &=&\dbinom{m}{0}a^{m+1} +\displaystyle\sum_{k=1}^m \left(\dbinom{m}{k}+\dbinom{m}{k-1}\right)a ^{(m+1)−k} b^k +\dbinom{m}{m}b^{m+1} \end{eqnarray} \]
ここで、 \[\dbinom{m+1}{k}=\dbinom{m}{k}+\dbinom{m}{k-1}\]
であるため、
\(\dbinom{m+1}{k}\) は、\(m+1\) 個の要素から \(k\) 個の要素を選ぶ組み合わせの総数を表します。
ここで、\(m+1\) 個の要素のうちの特定の1つの要素(例えば、要素\(X\))に注目します。\(m+1\) 個の要素から \(k\) 個を選ぶ組み合わせは、以下の2つの排反な場合に分けられます。
要素\(X\)を選ばない場合: この場合、残りの \(m\) 個の要素から \(k\) 個を選ぶことになり、その組み合わせの数は \(\dbinom{m}{k}\) 通りです。
要素\(X\)を選ぶ場合: この場合、すでに1つの要素(要素\(X\))を選んでいるので、残りの \(m\) 個の要素から \(k−1\) 個を選ぶことになり、その組み合わせの数は \(\dbinom{m}{k-1}\) 通りです。
したがって、\(m+1\) 個の要素から \(k\) 個を選ぶ組み合わせの総数は、これらの2つの場合の数の和に等しくなります。
\[\dbinom{m+1}{k}=\dbinom{m}{k}+\dbinom{m}{k-1}\]
また、
\[\dbinom{m}{0} =1=\dbinom{m+1}{0}\]
および
\[\dbinom{m}{m} =1=\dbinom{m+1}{m+1}\]
であることから、
\[ \begin{eqnarray} (a+b)^{ m+1}& =& \dbinom{m+1}{0} a^{m+1} + \displaystyle\sum_{k=1}^m\dbinom{m+1}{k} a^{ (m+1)−k} b^ k + \dbinom{m+1}{m+1}b^{m+1}\\ &=& \dbinom{m+1}{0}a^{(m+1)-0}b^0+ \displaystyle\sum_{k=1}^m\dbinom{m+1}{k} a^{ (m+1)−k} b^ k + \dbinom{m+1}{m+1}a^{m+1-(m+1)}b^{m+1}\\ &=&\displaystyle\sum_{k=0}^{m+1}\dbinom{m+1}{k} a^{ (m+1)−k} b^ k \end{eqnarray} \]
となり、\(n=m+1\) の場合にも二項定理が成り立つことが示されました。
\(n=1\) の場合は証明済みですので、すべての非負の整数 \(n\) に対して二項定理
\[(a+b)^ n =\displaystyle\sum_{k=0}^n\dbinom{n}{k}a^{n−k} b^ k\]
が成り立つことが証明されます。
続いてシミュレーションです。
# 二項定理のシミュレーション
# パラメータ設定
<- 2 # aの値
a <- 3 # bの値
b <- 10 # nの値
n
# 左辺の計算: (a + b)^n
<- (a + b)^n
lhs
# 右辺の計算: Σ (k=0 to n) [nCk * a^(n-k) * b^k]
<- 0
rhs for (k in 0:n) {
# 二項係数 nCk を計算
<- choose(n, k)
nCk
# 各項を計算して合計に加える
<- nCk * (a^(n - k)) * (b^k)
term <- rhs + term
rhs
}
cat("左辺 (a + b)^n:", lhs, "\n")
cat("右辺 Σ (k=0 to n) [nCk * a^(n-k) * b^k]:", rhs, "\n")
左辺 (a + b)^n: 9765625
右辺 Σ (k=0 to n) [nCk * a^(n-k) * b^k]: 9765625
以上です。