ランダムウオークプログラムの説明
- 1行目から3行目はヘッダーファイルの読み込み
- 5行目がメインプログラムのはじまり
- 7行目から9行目はこのプログラムで使用する記憶場所を確保するための宣言。
ここでは x と y という0番から10000番までの番号のついた浮動小数点数
(小数点つきの数)を記憶する場所を確保している。その他、角度を記憶するための
変数 th、原点からの距離を記憶するための変数 r、発生させた乱数の個数を
数えるための整数型変数 i、全部で何個の乱数を発生させるかを記憶しておく
整数型変数 nx、乱数のタネを記憶しておく変数 iseed などが宣言されている。
- scanf はデータを読み込むための命令。ここでは nx と
iseed という整数を記憶する場所に整数値を読みこんでいる。nx としては
全部で何歩進むかを、iseed には乱数のタネの値を与える。
- x[0]=0, y[0]=0 で最初の x 座標、y 座標を与える。
- srand48(iseed) は乱数のタネをセットするための命令である。これによって
ここで使っている計算機システムの数値計算用関数ライブラリの中にある
srand48という関数(あるまとまった仕事をするプログラム)が呼び出される。
iseed は関数に渡される引数(ひきすう)である。
- for(i=1;i<nx;i++) {....} は {....}の範囲に書かれている命令を
カウンター変数 i の値を 1 から i<nx の条件が満たされている間
1ずつ増やしながら繰り返し実行せよ(変数 i の値が1からnx-1まで nx-1回
繰り返せ)という命令。
- th=2*3.14159*drand48()では移動方向を 0 から 2*3.14159 ラジアンの間
でランダムに決めている。0 から 1 までの範囲の一様乱数を1個生成するため
に drand48() によって一様乱数発生プログラムを呼び出している。
- x[i]=x[i-1]+cos(th), y[i]=y[i-1]+sin(th) は一歩の長さを 1 として
一歩前の位置 (x[i-1],y[i-1])から現在の位置(x[i],y[i])を決定している。
- nx 歩進みおわったら、 printf("%f %f\n",x[i],y[i]) によって0歩目から nx
歩目までの座標値を標準出力装置(通常はディスプレイ)に出力する。