兰顿蚂蚁 元胞自动机的一种

和上次写的康威生命游戏类似

图挺小的… 不知道怎么在mathematica里面直接导出png超级小 下次还是继续用export

Langton’s ant is a cellular automaton that models an ant sitting on a plane of cells, all of which are white initially, facing in one of four directions. Each cell can either be black or white. The ant moves according to the color of the cell it is currently sitting in, with the following rules:

If the cell is black, it changes to white and the ant turns left;
If the cell is white, it changes to black and the ant turns right;
The Ant then moves forward to the next cell, and repeat from step 1.

This rather simple ruleset leads to an initially chaotic movement pattern, and after about 10000 steps, a cycle appears where the ant moves steadily away from the starting location in a diagonal corridor about 10 pixels wide. Conceptually the ant can then travel infinitely far away.

For this task, start the ant near the center of a 100 by 100 field of cells, which is about big enough to contain the initial chaotic part of the movement. Follow the movement rules for the ant, terminate when it moves out of the region, and show the cell colors it leaves behind.

The problem has received some analysis; for more details, please take a look at the Wikipedia article.

direction = 1;
data = SparseArray[{{50, 50} -> -1}, {100, 100}, 1];
NestWhile[
  {Re@#, Im@#} &@(direction *= (data[[Sequence @@ #]] *= -1) I) + # &,
  {50, 50}, 1 <= Min@# <= Max@# <= 100 &];
Image@data

如下所示
我这里随机的行走路径