====== 【数値情報処理a】第1回の答え ====== ===== 課題 ===== RStudio で二項係数 $_{100}C_{2}$ を計算して出力するプログラムを作りなさい。 ただし、factorial.R のように for と print を使用して作ること(choose や gamma などの二項係数や階乗を計算する関数は使ってはいけない)。 ---- ==== 解答例1 ==== 二項係数の定義 \[ _{n}C_{k}=\frac{n!}{k!\times (n-k)!} \] n <- 100 k <- 2 # n!の計算 a <- 1 for (i in 1 : n) { a <- a * i } # k!の計算 b <- 1 for (i in 1 : k) { b <- b * i } # (n-k)!の計算 c <- 1 for (i in 1 : (n-k)) { c <- c * i } # n!/(k!*(n-k)!)の出力 print(a / (b * c)) ---- ==== 解答例2 ==== 二項係数の定義 \[ _{n}C_{k}=\frac{n!}{k!\times (n-k)!}=\frac{n\times(n-1)\times\cdots\times(n-k+1)}{k!} \] n <- 100 k <- 2 # n×(n-1)×...×(n-k+1)の計算 a <- 1 for (i in (n - k + 1) : n) { a <- a * i } # k!の計算 b <- 1 for (i in 1 : k) { b <- b * i } # n!/(k!*(n-k)!)の計算 print(a / b)