乱数とランダムウォーク(課題0101)

[全課題リスト|サンプルソース|完成した実行ファイル(実習室のみ)|完成したソースの例] Time-stamp: "2004/11/12 Fri 14:39 hig"

C のプログラミングを思い出そう. ここで, 表記は凡例に従います.

サンプルrw1d1.cマニュアルにしたがってコンパイル, 実行すると次のようになります.

繰り返し回数?
5
シード?
3098
とすると,
-1
+1
+1
+1
-1
つまり, 3098をシードとして, 5回乱数を発生させて, +1, -1 をランダムに表示します. (乱数なので, 処理系によって結果は異なります.)

このプログラムを書き換えて, ランダムウォークの途中経過を表示するプログラムをつくろう. ただしx → yとジャンプする遷移確率は,

W(y|x)=

0.5(y=x+1,右に1進む),
0.5(y=x-1,左に1進む),
0 (それ以外)
とします.

ランダムウォークの長さ?
5
シード?
3098
とすると, 3098 を seed として, 長さ 5 の1次元ランダムウォークを行い,
  0   0        0
  0   0--------|-------------------
  0   0        *
  1  -1       *
  2   0        * 
  3  +1         *
  4  +2          *
  5  +1         *
のように表示する.
Copyright © 2004 Saburo Higuchi. All rights reserved.
樋口三郎, hig mail address