Diary
twitterもはじめました
[312]2007/8/26(Sun)
[tag: 旧日記システム
]
ライフゲームは非常に単純で簡単なルールからできているのにもかかわらず,
そのアウトプットはとても多彩で複雑だ。
自分の周り8セルしか見ていないのにもかかわらず,
全体として面白い振る舞いをする。
同じような現象は生物の世界でも多くて, 植物なんかはフィボナッチ数列に従うものが多い。 そのようなものは少なからず自己相似的で,再帰的な構造をしている。 最も分かり易い例がヒマワリのタネの付きかただったり, 松ぼっくりの"まつかさ"の生えかただったりする。
なんで生物はそのような実装をしたのか非常に興味深い。 プログラミングで考えてみると,フィボナッチ数列などの再帰的な構造を持つものは プログラムしやすい。フィボナッチ数列を求めるコードを書いてみると
再帰的な構造にすることの利点はプログラミングと同じように,生物の遺伝子でも得られるんだろうか。 それとも,生物に求められる構造に進化した結果,再帰的な構造になったんだろうか。
こんなような単純なルールで複雑な結果が得られるのを見ていると, 実は人間の脳の構造も似たところがあるんじゃないかと思ってしまう。
人間の行動から脳の構造を知るのがとても難しいのは, ライフゲームのルールとアウトプットの関係と実は似てるんじゃないだろうかと。 …まぁ,勝手な憶測なんだけど。
セル・オートマトン
フラクタル
フィボナッチ数列
同じような現象は生物の世界でも多くて, 植物なんかはフィボナッチ数列に従うものが多い。 そのようなものは少なからず自己相似的で,再帰的な構造をしている。 最も分かり易い例がヒマワリのタネの付きかただったり, 松ぼっくりの"まつかさ"の生えかただったりする。
なんで生物はそのような実装をしたのか非常に興味深い。 プログラミングで考えてみると,フィボナッチ数列などの再帰的な構造を持つものは プログラムしやすい。フィボナッチ数列を求めるコードを書いてみると
int fib(int n) {
if(n <= 1) return 1;
else return fib(n-1) + fib(n-2);
}
と,非常に簡潔に書くことができる。if(n <= 1) return 1;
else return fib(n-1) + fib(n-2);
}
再帰的な構造にすることの利点はプログラミングと同じように,生物の遺伝子でも得られるんだろうか。 それとも,生物に求められる構造に進化した結果,再帰的な構造になったんだろうか。
こんなような単純なルールで複雑な結果が得られるのを見ていると, 実は人間の脳の構造も似たところがあるんじゃないかと思ってしまう。
人間の行動から脳の構造を知るのがとても難しいのは, ライフゲームのルールとアウトプットの関係と実は似てるんじゃないだろうかと。 …まぁ,勝手な憶測なんだけど。
参考URI
最初はもっと色々書いていたのに,ほとんどWikipediaに書いてあって絶望した! ということで,俺が書こうとしたことの残りは以下のリンクに大体書いてある。セル・オートマトン
フラクタル
フィボナッチ数列