一様分布にしたがう連続型擬似乱数の生成(cont15) - 課題p091

Time-stamp: "2016-06-20 Mon 17:15 JST hig"

情報

  • 出題:2016-06-20
  • 実行/提出期限:2016-06-20
  • 提出
    • cont15.c プログラム

学習目標

  • 一様分布の確率密度関数$f(r)$が与えられたとき, それに従う連続値擬似乱数をCのプログラムで生成できる.

課題

状況の説明

大注意: この関数$f(r)$は例です. 課題ではグループ別に指定された確率密度関数を使うこと.

次の確率密度関数 \(f(r)\) を持つ連続値確率変数$R$を考える(チーム別指定).

  1. \[ f(r)= \begin{cases} 2 & (3\leq r < \frac72 )\\ 0 & \text{(他)} \end{cases} \]
  2. \[ f(r)= \begin{cases} \frac13 & (2\leq r < 5 )\\ 0 & \text{(他)} \end{cases} \]
  3. \[ f(r)= \begin{cases} \frac14 & (-1\leq r < 3 )\\ 0 & \text{(他)} \end{cases} \]
  4. \[ f(r)= \begin{cases} 5 & (-1\leq r < -\tfrac45 )\\ 0 & \text{(他)} \end{cases} \]

課題のタスク

  • 与えられた確率密度関数に従う連続値擬似乱数を作るための単調増加な $g(y)$, すなわち double getrandom(double y)を考えよう. $g(y)$を使って連続値疑似乱数を出力する, 下の仕様に従ったプログラムcont15.cを作ろう.
  • サンプルサイズ$N=1000$で実行しよう. しばらく前から使っている方法で結果を CSV ファイルに保存しよう.

プログラムの入力

この順で1行に1個ずつ
  • 乱数のシードd(0以上の整数)
  • 標本のサイズN(2以上の整数)

プログラムの入力例

XYZ 自分で決めるシード
1000

プログラムの出力

  • 1行目に"n,r"
  • 2行目に# a=に続いて 確率密度関数番号
  • 3行目に# d=に続いて シード
  • 4行目に# N=に続いて 標本のサイズ
  • 以下, コンマで区切って, 0から始まる通し番号と, 確率密度関数にしたがう疑似乱数を(小数点以下7桁まで), 1行に1組ずつN行.

プログラムの出力例

n,r
# a=A 確率密度関数番号
# d=XYZ シード
# N=1000
0,-1.1229186
1,0.6899448
2,-1.7634973
3,-1.6385540
4,-1.1589491
5,0.9768188
6,0.6809075
7,0.8701208
…中略
999,2.8233919

アドバイス

自分でチェック!

  • 連続値擬似乱数の範囲はあってる?

Useful Links

この科目の課題の一覧

このサイトのコンテンツ

QRcode to hig3.net

http://hig3.net