HDLBits (116) — 規(guī)則90
本題鏈接:
https://hdlbits.01xz.net/wiki/Rule90
Rule 90是一種有趣的一維細(xì)胞自動(dòng)機(jī)。
規(guī)則很簡(jiǎn)單。有一個(gè)一維單元陣列(開(kāi)或關(guān))。在每個(gè)時(shí)間步,每個(gè)單元的下一個(gè)狀態(tài)是該單元的兩個(gè)相鄰單元的異或。下表更詳細(xì)地表達(dá)了這一規(guī)則,其中一個(gè)單元的下一個(gè)狀態(tài)是其自身及其兩個(gè)相鄰單元的函數(shù):

(“ Rule 90”這個(gè)名字來(lái)自于“ next state”列: 01011010是 decimal 90。)
在這個(gè)電路中,創(chuàng)建一個(gè)512單元系統(tǒng)(q [511:0]) ,每個(gè)時(shí)鐘周期前進(jìn)一個(gè)時(shí)間步。load輸入表明系統(tǒng)的狀態(tài)應(yīng)該加載數(shù)據(jù)[511:0]。假設(shè)邊界(q [-1]和 q [512])都為零(關(guān))。

題目
提示:
當(dāng)初始狀態(tài) q [511:0] = 1時(shí),前幾次迭代是:
?這形成了半個(gè)謝爾賓斯基三角形.

答案

輸出波形


規(guī)則90
規(guī)則90是一個(gè)基本的元胞自動(dòng)機(jī)。這意味著它由一個(gè)一維單元格數(shù)組組成,每個(gè)單元格都包含一個(gè)二進(jìn)制值,即 0 或 1。將值分配給所有單元格的行為稱為配置。自動(dòng)機(jī)被賦予一個(gè)初始配置,然后經(jīng)過(guò)一系列離散的時(shí)間步長(zhǎng)完成其他配置。在每個(gè)步驟中,所有單元格都會(huì)同時(shí)更新。預(yù)先指定的規(guī)則確定每個(gè)元胞的新值,作為其先前值及其兩個(gè)相鄰元胞中值的函數(shù)。所有單元格都應(yīng)遵循相同的規(guī)則,該規(guī)則可以作為公式或規(guī)則表給出,該規(guī)則表為相鄰值的每個(gè)可能組合指定新值。
對(duì)于規(guī)則90,每個(gè)元胞的新值是兩個(gè)相鄰值的獨(dú)占值或兩個(gè)相鄰值的獨(dú)占值。等價(jià)地,這個(gè)特定自動(dòng)機(jī)的下一個(gè)狀態(tài)由下面的規(guī)則表控制:


謝爾賓斯基三角形
謝爾賓斯基三角形(有時(shí)拼寫(xiě)為Sierpinski),也稱為謝爾賓斯基墊圈或謝爾賓斯基篩,是一個(gè)分形有吸引力的固定集,具有等邊三角形的整體形狀,遞歸地細(xì)分為較小的等邊三角形。最初構(gòu)造為曲線,這是自相似集合的基本示例之一 - 也就是說(shuō),它是一種數(shù)學(xué)生成的模式,在任何放大或減少下都是可重復(fù)的。它以波蘭數(shù)學(xué)家Wac?aw Sierpiński的名字命名,但在Sierpiński工作之前的許多世紀(jì)就作為裝飾圖案出現(xiàn)。

參考內(nèi)容:
?Rule_90?| wikipedia:
https://en.wikipedia.org/wiki/Rule_90
Sierpiński_triangle | wikipedia:
https://en.wikipedia.org/wiki/Sierpiński_triangle