Wolfram mathematica 在Mathematica中创建新的细胞自动机规则

Wolfram mathematica 在Mathematica中创建新的细胞自动机规则,wolfram-mathematica,cellular-automata,Wolfram Mathematica,Cellular Automata,我需要在Mathematica中创建一个新的CA规则。 我该怎么办?我的意思是,我需要创建一个具有3种颜色(黑色、白色和灰色)的CA。 您能帮我个忙吗?指定自定义规则的一种方法是定义一个函数,给定一个邻居列表和时间步长,该函数将输出更新后的值。比如说 fun[lst_, t_] := Mod[Total[lst], 3] 它将简单地计算一个元素的所有邻域之和,模3。然后,此功能可在CellularAutomaton中使用,如下所示 With[{init = {0, 0, 0, 0, 0, 1,

我需要在Mathematica中创建一个新的CA规则。 我该怎么办?我的意思是,我需要创建一个具有3种颜色(黑色、白色和灰色)的CA。
您能帮我个忙吗?

指定自定义规则的一种方法是定义一个函数,给定一个邻居列表和时间步长,该函数将输出更新后的值。比如说

fun[lst_, t_] := Mod[Total[lst], 3]
它将简单地计算一个元素的所有邻域之和,模3。然后,此功能可在
CellularAutomaton
中使用,如下所示

With[{init = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, nsteps = 10, r = 1},
   res = CellularAutomaton[{fun, {}, r}, init, nsteps]]

ArrayPlot[res]

非常感谢。例如,如果我想使用三种颜色获得以下输出:{0,1,1,0,2,2,1,0},我可以从它开始设置一个函数吗?@DanieleRicci你的确切意思是什么?在我上面的示例中,为
fun
提供的参数是单元格的邻域和时间步长,因此对于邻域半径为1且可能状态为0、1、2的1D CA,您需要指定
fun[{0、0、0},t]
fun[{0、0、1},t]
,和
fun[{2,2,2},t]
其中
t
是时间步长。亲爱的海克,我的意思是为我愚蠢的问题感到抱歉:我想要以下规则:白色(0),黑色(1),灰色(2)-->0,0,0-->0;0,0,1-->