乱数 一様分布 正規分布

[戻る]
yuki 2009/04/21(火) 21:14:41
ランダムに値を返すクラスを作りたいのですが、一様分布は最大値,最小値を指定で
き、正規分布は平均値,分散を指定できるようにするにはどうしたらいいでしょうか?

一様乱数はこんな感じだと思うのですが,指定できるようにするにはどうするかわかり
ません。
#include  <stdio.h>
#include  <stdlib.h>
main()
{
    int i, r;
    int rmax;
    rmax=RAND_MAX; /* 2^(15)-1*/
    printf("RAND_MAX=%ld\n", rmax);
    /*乱数発生系列の初期化*/
    srand(time(NULL)%RAND_MAX);
    for (i=0; i<20; ++i) {
        r=rand();/*乱数の取り出し*/
         printf(“%d\t%f\n”,r,(float)r/RAND_MAX);
    }
}



知識不足で申し訳ないですがよろしくお願いします。

tetrapod 2009/04/22(水) 09:06:39
乱数の質とか考えると、こういうのを自作するのは勧めない
自作することが目的なら別だが
とりあえず boost にある random 系にそういう必要そうなもの一式皆あるよ
http://www.kmonos.net/alang/boost/classes/random.html
http://boost.cppll.jp/HEAD/libs/random/index.html

επιστημη [E-Mail] [HomePage] 2009/04/22(水) 09:18:51
ご参考: 
VC++9ならヘッダ<random>にモロモロ詰まってます。
確率分布なら
- uniform_int
- uniform_real
- bernoulli_distribution
- geometric_distribution
- poisson_distribution
- binomial_distribution
- exponential_distribution
- normal_distribution
- gamma_distribution

古いスレッドには追加発言できません。