第311行: |
第311行: |
| [[File:规则集1.png|屏幕快照 2015-12-12 00.36.36.png]] | | [[File:规则集1.png|屏幕快照 2015-12-12 00.36.36.png]] |
| </center> | | </center> |
| + | |
| + | 那么这组规则就对应着编码:10100011,也就是把八个位置上的方格进行一个排列。我们可以把输出部分的二进制编码转换成十进制数的形式:163,这就是该细胞自动机的编码。当状态数增多,半径增大的时候,这种编码方式就不实用了,我们需要用另一种方式来编码。考虑下面这样的规则若有一个规则是:“如果输入的三个方格中黑色方格只有1个,那么下一时刻当前方格就是黑色;如果有两个黑色方格,则下时刻是白色,如果有三个方格,则下时刻是黑色,如果有4个方格,那么下一时刻是白色”可以表示成下面的函数表: |
| + | |
| + | <center> |
| + | <math>s_{i,t+1}=1</math>, 如果<math>s_{i-1,t}+s_{i,t}+s_{i+1,t}=1</math> |
| + | </center> |
| + | |
| + | <center> |
| + | <math>s_{i,t+1}=0</math>, 如果<math>s_{i-1,t}+s_{i,t}+s_{i+1,t}=2</math> |
| + | </center> |
| + | |
| + | <center> |
| + | <math>s_{i,t+1}=1</math>, 如果<math>s_{i-1,t}+s_{i,t}+s_{i+1,t}=3</math> |
| + | </center> |
| + | |
| + | <center> |
| + | <math>s_{i,t+1}=0</math>, 如果<math>s_{i-1,t}+s_{i,t}+s_{i+1,t}=0</math> |
| + | </center> |
| + | |
| + | <center> |
| + | 其中<math>s_{i,t}\in\{0,1\}</math>, 对于任意的i和t |
| + | </center> |
| + | |
| + | 这种情况下,输入就仅仅有4种情况,因此可以得到下面的表: |
| + | |
| + | {|class="wikitable" |
| + | |输入||0||1||2||3 |
| + | |- |
| + | |输出||0||1||0||1 |
| + | |} |
| + | |
| + | 同样的道理,我们可以对它进行编码为:0101,表示为十进制就是5。显然,这种编码方式比前一种短,但是这种编码方法不能反映所有的细胞自动机。 |
| + | |
| + | |
| 每一组规则集也可以表示成类似于上面的图和表,例如下面的另外一组规则 | | 每一组规则集也可以表示成类似于上面的图和表,例如下面的另外一组规则 |
| <center> | | <center> |