/* 乱数の生成 */ #include unsigned int irandu(unsigned long *iseed); float randu(unsigned long *iseed); main() { unsigned long iseed, nran; int j; float a; iseed=1; for(j = 0; j < 100; j++){ nran=irandu(&iseed); a=randu(&iseed); printf("%d, %u, %f\n",j,nran,a); } } /* 0から4294967295の一様乱数を生成 */ unsigned int irandu(unsigned long *iseed) { unsigned long ir; *iseed=*iseed*48828125; ir=*iseed; return ir; } /* 0から1の一様乱数の生成*/ float randu(unsigned long *iseed) { float r; *iseed=*iseed*48828125; r=((float) *iseed)/4294967295ul; return r; }