宮崎大学 >>
工学部 >>
情報システム工学科 >>
伊達 >>
特別演習
>>
Last modified: Fri Mar 30 14:20:34 JST 2007
例えば
x[0], x[1], x[2],...
y[0], y[1], y[2],...
という配列にデータを蓄えることにしよう.
ここで
x[0], x[1],... は 0,1 の整数, y[0], y[1],... は少数を扱えるように
したい.
#include <stdio.h>
int x[500]; /* x[0],...x[499] までの int型メモリを確保 */
double y[500];
int main(void)
{
/* ここにプログラムを書く */
}
#include <stdio.h>
#include <stdlib.h> /* 関数 srand48(), dtand48() を使うため */
int main(void)
{
int i;
int seed = 1234567; /* 乱数の「種」*/
double x;
srand48( seed );
for (i=0; i<1000; i++){
x = drand48();
printf("%.5lf\n",x);
}
}
$ man drand48 ... uniformly distributed between [0.0, 1.0). ... Xn+1 = (aXn + c) mod m
x[t+1] = (2 x[t] + 3) mod 20を考えてみよう.
x[1] = (2 x[0] + 3) mod 20 = 9 mod 20 = 9 x[2] = (2 x[1] + 3) mod 20 = 21 mod 20 = 1. x[3] = (2 x[2] + 3) mod 20 = 5 mod 20 = 5. x[4] = (2 x[3] + 3) mod 20 = 13 mod 20 = 13. x[5] = (2 x[4] + 3) mod 20 = 29 mod 20 = 9. ...9, 1, 5, 13, 9... というのは一見,乱数ですね.
宮崎大学 >> 工学部 >> 情報システム工学科 >> 伊達 >> 特別演習