challenge 2次元ランダムウォーク

2次元ランダムウォークをつくってみてください。

******

元は3本建てにしようかと思ったけど、上の一本に絞りました。おまけとして、3本とも下に補足しておきます。作れるようでしたら作ってみてください。

1.一次元のランダムウォークを作ってください。

1.1 データファイルに残してください。 フォーマット:時間 位置

おまけ)

可視化が簡単な処理系・プログラミング言語でしたら実際に可視化してみてください。フォーマットしたファイルをスプレッドシートやplotutilitiesなどの可視化ソフトを使って、実際に動きをかくにんしてみましょう。:-)

2.同じように2次元のランダムウォークを作ってください。

2.1 1.1と同じようにしてください。

フォーマット:時間 x位置 y位置

3.凝りたければ、アニメーションにするもよし、3次元の動きをとるもよし、自分の想像力がいかせるところまでやってみてください。

http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%AF

分からないというヒトへの分かりにくいヒント:

今の位置から次の時間の位置が決まるのですが、決まりかたが、乱数で一歩後退するか一歩先にいくか?ということをやればよいです。

Posted feedbacks - PHP

こんな感じでしょうか。 移動距離は1固定です。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<?php
//移動回数
define('LOOP', 10);

//初期位置
$pos[0] = array('x' => 0, 'y' => 0);

for($time = 1; $time <= LOOP; $time++){
    $rad = deg2rad(mt_rand()%360);
    $x = $pos[$time-1]['x'] + cos($rad);
    $y = $pos[$time-1]['y'] + sin($rad);
    $pos[$time] = array('x' => $x, 'y' => $y);
}

foreach($pos as $key => $val){
    echo $key . " " . $val['x'] . " " . $val['y'] . " " . "\n";
}

Index

Feed

Other

Link

Pathtraq

loading...