ユーザ用ツール

サイト用ツール


numericalipa:ans1

文書の過去の版を表示しています。


【数値情報処理a】第1回の答え

課題

RStudio で二項係数 $_{100}C_{2}$ を計算して出力するプログラムを作りなさい。

ただし、factorial.R のように for と print を使用して作ること(choose や gamma などの二項係数や階乗を計算する関数は使ってはいけない)。


解答例

二項係数の定義 \[ _{n}C_{k}=\frac{n!}{k!\times (n-k)!} \]

binomial1.R
  1. n <- 100
  2. k <- 2
  3. # n!の計算
  4. a <- 1
  5. for (i in 1 : n) {
  6. a <- a * i
  7. }
  8. # k!の計算
  9. b <- 1
  10. for (i in 1 : k) {
  11. b <- b * i
  12. }
  13. # (n-k)!の計算
  14. c <- 1
  15. for (i in 1 : (n-k)) {
  16. c <- c * i
  17. }
  18. # n!/(k!*(n-k)!)の出力
  19. print(a / (b * c))

二項係数の定義 \[ _{n}C_{k}=\frac{n!}{k!\times (n-k)!}=\frac{n\times(n-1)\times\cdots\times(n-k+1)}{k!} \]

binomial2.R
  1. n <- 100
  2. k <- 2
  3. # n×(n-1)×...×(n-k+1)の計算
  4. a <- 1
  5. for (i in (n - k + 1) : n) {
  6. a <- a * i
  7. }
  8. # k!の計算
  9. b <- 1
  10. for (i in 1 : k) {
  11. b <- b * i
  12. }
  13. # n!/(k!*(n-k)!)の計算
  14. print(a / b)
numericalipa/ans1.1744815977.txt.gz · 最終更新: 2025/04/16 15:06 by you