陳凱
一只兔子在自家菜園的田地中劃出鉆石狀的格子,在其中種上胡蘿卜,要知道,這是一只有強迫癥的兔子,它所做的事情,都遵循一種叫做對稱的規(guī)則。它在第一行的正中間種上一棵胡蘿卜,然后從第二行開始,兔子站在格子中望向前一行的左前方和右前方,若所種的胡蘿卜排列恰巧對稱,那它就空出這塊地方什么也不種,要是望出去不對稱,就種下胡蘿卜,其后的每一行也都是這樣。照這個規(guī)則一直種胡蘿卜的話,得到的圖案如圖1所示,看上去很熟悉,不是嗎?
在往期的文章里,我們已經(jīng)介紹了初等元胞自動機,并且在矩形網(wǎng)格中通過初等元胞自動機第90號規(guī)則得到了謝爾賓斯基三角形圖案?,F(xiàn)在,我們在鉆石狀網(wǎng)格中用更簡單的規(guī)則得到了同樣的圖案,假如換成六角形形狀的網(wǎng)格,結果仍然是相同的,這可真是奇妙。鉆石狀或六角形網(wǎng)格中的謝爾賓斯基三角形的生成規(guī)則可簡敘為:00生成0;11生成0;10生成1;01生成1。
值得注意的是,在六角形網(wǎng)格中,我們可以任意選擇圖中所示的x、y、z這三個方向按以上規(guī)則來生成謝爾賓斯基三角形(如圖2)?,F(xiàn)在的問題是,能否選擇a、b、c這三個方向,來“倒”著生成謝爾賓斯基三角形呢?換而言之,就是要尋找到某個規(guī)則,使二進制序列“0111111110”變化為“010101010”,同樣的規(guī)則再使得“010101010”變化為“01100110”,進而為“0100010”、“011110”、“01010”、“0110”、“010”呢(如圖3)?
把圖形稍微旋轉一點角度得到字符序列如圖4,這樣看起來就更清楚一些。
乍一看似乎難以找到這樣的規(guī)則,因為逆向的謝爾賓斯基三角形的變化方式似乎具有很大的不確定性。例如,從第一行到第二行的變化中,我們既不能規(guī)定11生成1,也不能規(guī)定11生成0。實際上,同步更新的自動機無法勝任此工作,但或許我們可以嘗試使用異步的自動機來生成謝爾賓斯基三角形。什么是異步自動機呢?下面演示的是字符序列中第二行前四個字符的生成過程,相信讀者看了以后會有所領悟。
第一步:01生成1。
第二步:11生成0。
第三步:01生成1。
可以換一些更長的數(shù)字序列,比如“011111111111111110”,觀察運用異步變化規(guī)則,能否順利產(chǎn)生出謝爾賓斯基三角形。驗證工作借助微軟的Excel電子表格就能夠實現(xiàn),想到怎么做了嗎?(答案在本期找)