Location : Home > Languages > Perl > Package
Title : Statistics::ConwayLife
Toolbox Logo

名称

 Statistics::ConwayLife - ライフシミュレーションを行うための Perl 拡張


概要

use Statistics::ConwayLife;
my $life = Statistics::ConwayLife->new( ([0, 0, 0],
                                         [1, 1, 1],
                                         [0, 0, 0]) );
$life->run(1);
print $life->view_output();

 3x3 の行列が生成され、計算が実行され、結果が出力される。


メソッド

randomlife($width, $height, $chance);

 生命が発生するランダムな確率を格納した配列を返す。
 $width は配列の幅(列の数)であり、$height は配列の高さ(行の数)である。$chance は各セルに格納される生命の発生確率である。(上限は1。ただし1を含む。) 例えば $chance の値が 0.3 であればセルで生命が発生する確率は 30% である。

use Statistics::ConwayLife qw( randomlife );
my $life = Statistics::ConwayLife->new(randomlife(5, 4, .4));
$life->run(1);
print $life->view_output();

 上の例では 5x4 の行列が生成され、各セルには 40% の確率で生命が発生する。そして実行し、結果出力される。

$life->view_output()

 $life におけるデータを 0/1 で表す。改行(Line break)は行(row)が変わったことを表す。

$life->view_row($y)

 $life におけるデータの第 $y 行を配列で返す。

$life->view_col($x)

 $life におけるデータの第 $x 列を配列で返す。


説明

 Statistics::ConwayLife は John Conway のアルゴリズムにしたがってシミュレーションを行う。各セルは2次元配列に格納される。
 アルゴリズムの概要は以下のとおりである。:
 各セルには 0 か 1 が格納されており、実行されるごとに、周囲の3セルに生命があれば状態はそのまま、2セルに生命があれば生命を生成し、それ以外であれば死滅する。この単純なアルゴリズムで生きているセルの振る舞いを記述できる。


著者

 Dan Bjorkegren, <dan_b@mail.com>
 本ライブラリはフリーソフトウェアであり、Perl自身の配布条件と同等の条件のもとで変更/再配布してもよい。


【訳注と解説】

  1. ケンブリッジ大の数学者 John Horton Conway が提唱した生命のシミュレーションで、Conway's Game of Life と呼ばれることが多いみたいだ。
  2. けど、これって、Statistics::ConwayLife じゃなくて、AI::ConwayLife とか、Algorythm::ConwayLife とか、Bio::ConwayLife のほうがいいような気がするのは、私だけ? (←だいたひかる風に)

【関連URL】

  1. J.H.ConwayのLife
  2. Conway's Game of Life
Toolbox Logo
Updated : 2006/06/12