original page : http://ja.doukaku.org/126/
セルオートマトンに関するお題です.
2次元タイプの'ライフゲーム'を実装して下さい.
初期値としては10行10列程度の格子上の平面に0.3程度の人口(?)密度を考え,
末端はループするようにして下さい. (例: 座標[-1, -1] = [10, 10])
それだけだと簡単すぎると思われる方は,
過密状態で間引きが発生するような機能を組み込んで下さい.
間引きは, 少なくともその後の1時間ステップにおける死亡率が,
それをしなかった場合よりも小さくなれば結構です.
(死亡率の最小化は複雑性が高すぎる感がありますし. )
サンプル:
t = 0
[ ][*][ ][ ][ ][ ][*][*][*][ ]
[ ][ ][ ][ ][*][ ][ ][*][*][ ]
[ ][ ][ ][*][ ][ ][*][ ][*][ ]
[*][ ][*][*][ ][ ][*][ ][ ][ ]
[ ][*][ ][ ][ ][ ][ ][ ][*][ ]
[*][ ][ ][ ][*][ ][*][*][ ][*]
[ ][*][ ][ ][ ][ ][*][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][*]
[*][ ][ ][ ][ ][ ][*][ ][ ][*]
[ ][ ][ ][ ][*][*][ ][ ][*][ ]
t = 1
[ ][ ][ ][ ][*][ ][ ][ ][ ][*]
[ ][ ][ ][ ][ ][*][ ][ ][ ][*]
[ ][ ][*][ ][*][*][*][ ][*][*]
[ ][*][ ][*][ ][ ][ ][ ][ ][*]
[ ][ ][*][*][ ][*][*][ ][*][ ]
[ ][*][ ][ ][ ][*][*][ ][*][*]
[ ][ ][ ][ ][ ][*][*][*][*][*]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][*]
[*][ ][ ][ ][ ][*][ ][ ][*][ ]
[*][ ][ ][ ][ ][ ][ ][ ][ ][ ]
#6802
original page : http://ja.doukaku.org/comment/6802/
厳密にはお題に沿ってないかもしれませんが、ネタ的に。
simecolパッケージに、conwayのライフゲーム用のオブジェクトデータが用意されています。
library(simecol) size <- 10 m <- matrix(0, size, size) m[sample(size^2, size^2*0.3)] <- 1 data(conway) init(conway) <- m times(conway) <- c(from=1, to=100, by=1) sim(conway, animate=TRUE, delay=1, axes=FALSE)