2012-07-04 30 views

回答

3

指定自定義規則的一種方法是定義一個函數,該函數在給定鄰居列表和時間步長的情況下將輸出更新後的值。例如

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] 

Mathematica graphics

+0

非常感謝。 例如,如果我想使用三種顏色輸出以下輸出: {0,1,1,0,2,2,1,0},我可以設置一個從它開始的函數嗎? –

+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'是時間步驟。 – Heike

+0

親愛的海克, 我的意思是對不起我的愚蠢問題:我想要遵循以下規則:白色(0),黑色(1),灰色(2) - > 0,0,0 - > 0; 0,0,1 - > –