1. ホーム
  2. フラクタル
  3. ランダム・ウォーク

ここでは、書籍「アートで魅せる数学の世界」のp.199-203で解説されている、ランダム・ウォークを再現してみました。

対称単純ランダム・ウォーク

今回、描いた対称単純ランダム・ウォークによる図形です。

対称単純ランダム・ウォーク

この対称単純ランダム・ウォークの図形は、疑似乱数を用いた図形のため、プログラムを実行するたびに形は変わります。

対称単純ランダム・ウォークのステップ

対称単純ランダム・ウォークの図形は、\(xy\)座標系の原点\((0,0)\)からスタートして、4つの方向にそれぞれ\(1/4\)の確率で一定の距離進むステップ(下図)を繰り返していくことで描くことができます。

対称単純ランダム・ウォークのステップ

ソースコード

今回作成した対称単純ランダム・ウォークのプログラムのソースコードを示します。

void setup(){
  size(500,500);
  translate(width/2, height/2);
  background(255,255,255);

  int step_num = 50000;
  float x, y;
  x = 0.0;
  y = 0.0;
  beginShape();
  vertex(x,y);
  for(int i=0; i<step_num; i++){
    if( random(1.0) < 0.5 ){
      x += -1.0;
    } else {
      x += 1.0;
    }
    if( random(1.0) < 0.5 ){
      y += -1.0;
    } else {
      y += 1.0;
    }
    vertex(x,y);
  }
  endShape();
}