イントロ
興味あることをやろうとしていたら、シェルピンスキーの三角形と似た操作が出てきた。
これはこれでおもしろそうなので、参考がてらに軽く触れてみた。
Julia Notebook
https://gist.github.com/Lirimy/02d65e0d7589b7ab6a65dc0c4e22ac0a
シェルピンスキーの三角形の概要
https://en.wikipedia.org/wiki/Sierpinski_triangle
パスカルの三角形
- 左上のマスを1にする
- 空きマスの値を、左と上の数字の和で求める
- 繰り返して全てのマスを埋める
- 奇数を白・偶数を黒で塗る
1 | 1 | 1 | 1 |
---|---|---|---|
1 | 2 | 3 | 4 |
1 | 3 | 6 | 10 |
1 | 4 | 10 | 20 |
結局のところ偶奇だけが問題なので、演算は 0/1 に対して XOR をとればよい。
実装上もそうしてある。
セル・オートマトン(ルール90)
- 1行目に初期値を与える
- 次の行のマスの値を、前の行の近傍3マスから求める
- 繰り返す
近傍3マスのうち、実は真ん中のマスは次のマスに影響しない。
影響する両端2マスと出力マスだけに注目すると、 XOR の関係になっている。
よって、パスカルの三角形と同じ仕組みだと言える。
カオス・ゲーム
- 三角形の頂点 (P1, P2, P3) を決める(下図の青丸)
- 初期点 S を適当に決める(実装上は内部の点を指定した)
- P1, P2, P3 からランダムに1点選び、P とする
- S と P の中点を次の点 S にする
- 繰り返し S を求める