【发布时间】:2012-07-04 09:51:18
【问题描述】:
我需要在 Mathematica 中创建一个新的 CA 规则。 我能怎么做?我的意思是,我需要创建一个具有 3 种颜色(黑色、白色和灰色)的 CA。 你能帮帮我吗?
【问题讨论】:
标签: wolfram-mathematica cellular-automata
我需要在 Mathematica 中创建一个新的 CA 规则。 我能怎么做?我的意思是,我需要创建一个具有 3 种颜色(黑色、白色和灰色)的 CA。 你能帮帮我吗?
【问题讨论】:
标签: wolfram-mathematica cellular-automata
指定自定义规则的一种方法是定义一个函数,在给定邻居列表和时间步长的情况下,该函数将输出更新后的值。例如
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]
【讨论】:
fun 的参数是单元的邻域和时间步长,因此对于邻域半径为 1 且可能状态为 0、1、2 的一维 CA,您需要指定 fun[{0, 0, 0}, t], fun[{0, 0, 1}, t], ... 和 fun[{2, 2, 2}, t] 其中t 是时间步长。