No.15 Lattice Paths
問題.
考え方とプログラム例(Python3).
の格子において左上から右下まで, 右または下への移動のみで行く方法は,\begin{align*}
{}_{2N}C_{N} &= \dfrac{(4N)!}{(2N)!(2N)!}\\
&= \dfrac{4N\cdot(4N-1)\cdots (2N+1)}{2N\cdot (2N-1)\cdots 1}
\end{align*}
なので, これを計算すればいいだけなのですが, 分母と分子をそれぞれ計算して割り算しようとすると, だと分母, 分子がそれぞれ大きくなりすぎてしまい, うまく計算できません.
そこで, 次の式を使います.
この式を使って,
の順に求めていきます.
この方法を使えば, が20 よりももっと大きい数でも2項係数を計算できます.
N = 20 binom = 1 for k in range(1, N+1): binom = binom * (2 * N - k + 1) / k print(binom)