====== 【数値情報処理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)