康威生命游戲的計算機演算
先介紹下游戲的規(guī)則:
游戲開始時,每個細胞隨機地設定為“生”或“死”之一的某個狀態(tài)。然后,根據(jù)某種規(guī)則,計算出下一代每個細胞的狀態(tài),畫出下一代細胞的生死分布圖。
應該規(guī)定什么樣的迭代規(guī)則呢?需要一個簡單的,但又反映生命之間既協(xié)同又競爭的生存定律。為簡單起見,最基本的考慮是假設每一個細胞都遵循完全一樣的生存定律;再進一步,把細胞之間的相互影響只限制在最靠近該細胞的8個鄰居中。
也就是說,每個細胞迭代后的狀態(tài)由該細胞及周圍8個細胞狀態(tài)所決定。作了這些限制后,仍然還有很多方法來規(guī)定“生存定律”的具體細節(jié)。例如,在康威的生命游戲中,規(guī)定了如下生存定律。
(1)當前細胞為死亡狀態(tài)時,當周圍有3個存活細胞時,則迭代后該細胞變成存活狀態(tài)(模擬繁殖);若原先為生,則保持不變。
(2)當前細胞為存活狀態(tài)時,當周圍的鄰居細胞低于兩個(不包含兩個)存活時,該細胞變成死亡狀態(tài)(模擬生命數(shù)量稀少)。
(3)當前細胞為存活狀態(tài)時,當周圍有兩個或3個存活細胞時,該細胞保持原樣。
(4)當前細胞為存活狀態(tài)時,當周圍有3個以上的存活細胞時,該細胞變成死亡狀態(tài)(模擬生命數(shù)量過多)。
可以把最初的細胞結構定義為種子,當所有種子細胞按以上規(guī)則處理后,可以得到第1代細胞圖。按規(guī)則繼續(xù)處理當前的細胞圖,可以得到下一代的細胞圖,周而復始。
我使用了python的pygame來實現(xiàn)這個過程,初始格數(shù)為302x302,初始化生成活細胞的概率為50%,經(jīng)過一段時間的演算后整個棋盤趨于穩(wěn)定。

定義穩(wěn)定:大部分的細胞所組成的形狀不會發(fā)生改變,少部分的細胞所組成的形狀發(fā)生周期性的改變。統(tǒng)計后發(fā)現(xiàn),周期為3.

此外如果更改初始生成活細胞的概率的話,也會影響后續(xù)的演變。例如取概率為0.9,則3輪過后無細胞存活。