The Nature of Code(PDF版)からランダムウォークについて取り上げます。Processingでプログラムを書いて、動作を確認します。動作を確認できるところがProcessingの楽しいところです。今回は、ランダムウォークの確率を操作します。
ランダムウォークの確率の操作
4方向に移動するランダムウォークの確率を操作します。以下のような確率で移動することとします。
- 上へ行く確率:20%
- 下へ行く確率:20%
- 左へ行く確率:20%
- 右へ行く確率:40%
以上より、右方向に進みやすいランダムウォークになります。
//ランダムウォーカー class Walker{ int x; int y; Walker(){ x = width/2; y = height/2; } void display(){ stroke(0); point(x, y); } void step(){ float r = random(1); if (r < 0.4) { x++; } else if (r < 0.6) { x--; }else if(r < 0.8){ y++; } else { y--; } } } Walker w; void setup(){ size(640, 360); w = new Walker(); background(255); } void draw(){ w.step(); w.display(); }
step関数内で確率を設定しています。random関数が出力する値により、移動する方向を決定します。
まとめ
The Nature of Code(PDF版)からランダムウォークの確率の操作について取り上げました。引き続き、The Nature of Code(PDF版)の内容を勉強します。