幼稚園時代「何組」でしたか?

確率分布関数が次の表で与えられているとき,この分布に従う乱数を線形補間を使った逆変換によって生成する関数をどうやって作成したらいいか、全くわかりません。線形補間はなんとなくわかるんですが…。どなたか教えてください。

x F(x)
0 0.0024788
1 0.0173513
2 0.0619688
3 0.1512039
4 0.2850565
5 0.4456796
6 0.6063028
7 0.7439798
8 0.8472375
9 0.9160760
10 0.9573791
11 0.9799080
12 0.9911725
13 0.9963715
14 0.9985996
15 0.9994909
16 0.9998251
17 0.9999431
18 0.9999824
19 0.9999948
20 0.9999985
21 0.9999996
22 0.9999999
23 1.0000000

A 回答 (3件)

番号確立 確立(累積)


000.0024788 0.0024788
010.0173513 0.0198301
020.0619688 0.0817989
030.1512039 0.2330028
040.2850565 0.5180593
050.4456796 0.9637389
060.6063028 1.5700417
070.7439798 2.3140215
080.8472375 3.1612590
090.9160760 4.0773350
100.9573791 5.0347141
110.9799080 6.0146221
120.9911725 7.0057946
130.9963715 8.0021661
140.9985996 9.0007657
150.9994909 10.0002566
160.9998251 11.0000817
170.9999431 12.0000248
180.9999824 13.0000072
190.9999948 14.0000020
200.9999985 15.0000005
210.9999996 16.0000001
220.9999999 17.0000000
231.0000000 18.0000000

確立の累積を出す。
例えば6の「確立(累積)」は0~6の確立をすべて加算したもの。
あとは、0~18の乱数(小数点付)を発生させ、その値が「確立(累積)」のどの番号の値に近いかを見ればOK。
たぶん。

この回答への補足

返答ありがとうございます。

では、その関数を使って10000個の乱数を出したい場合は、どうすればいいのでしょうか???お暇がございましたら、よろしくお願いします。

補足日時:2005/11/02 14:40
    • good
    • 0

#2です。


「では、その関数を使って10000個の乱数を出したい場合は、どうすればいいのでしょうか???」
とのことですが、#2で回答したとおりです。
何がわからないのでしょうか?
ソースでも張って欲しいのでしょうか??

あと、#1さんにも同じ内容の補則をしていますよね。
#1さんには失礼ですが、#1さんの回答内容は明らかに間違っていると思います。
質問者さんも少し考えればわかることと思いますが・・・

なんか学校の課題を丸投げされているだけな気がしてきました。
もう少し自分で考えましょう!!
    • good
    • 0
この回答へのお礼

返答ありがとうございます。

別に、ソースを張って欲しいと思って質問したつもりではないんですが…。もう少し、よく参考書を読み直してみようかと思います。
ありがとうございました。

お礼日時:2005/11/02 18:16

0 <= x < 1 なる正規乱数を用意し、それが double F[24]; に納められた値に一番近い F[n] を探せば、nが

答ではないかしら?

この回答への補足

返答ありがとうございます。

では、その関数を使って10000個の乱数を出したい場合は、どうすればいいのでしょうか???お暇がございましたら、よろしくお願いします。

補足日時:2005/11/02 14:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!