HDLBits (116) — 规则90
本题链接:
https://hdlbits.01xz.net/wiki/Rule90
Rule 90是一种有趣的一维细胞自动机。
规则很简单。有一个一维单元阵列(开或关)。在每个时间步,每个单元的下一个状态是该单元的两个相邻单元的异或。下表更详细地表达了这一规则,其中一个单元的下一个状态是其自身及其两个相邻单元的函数:

(“ Rule 90”这个名字来自于“ next state”列: 01011010是 decimal 90。)
在这个电路中,创建一个512单元系统(q [511:0]) ,每个时钟周期前进一个时间步。load输入表明系统的状态应该加载数据[511:0]。假设边界(q [-1]和 q [512])都为零(关)。

题目
提示:
当初始状态 q [511:0] = 1时,前几次迭代是:
这形成了半个谢尔宾斯基三角形.

答案

输出波形


规则90
规则90是一个基本的元胞自动机。这意味着它由一个一维单元格数组组成,每个单元格都包含一个二进制值,即 0 或 1。将值分配给所有单元格的行为称为配置。自动机被赋予一个初始配置,然后经过一系列离散的时间步长完成其他配置。在每个步骤中,所有单元格都会同时更新。预先指定的规则确定每个元胞的新值,作为其先前值及其两个相邻元胞中值的函数。所有单元格都应遵循相同的规则,该规则可以作为公式或规则表给出,该规则表为相邻值的每个可能组合指定新值。
对于规则90,每个元胞的新值是两个相邻值的独占值或两个相邻值的独占值。等价地,这个特定自动机的下一个状态由下面的规则表控制:


谢尔宾斯基三角形
谢尔宾斯基三角形(有时拼写为Sierpinski),也称为谢尔宾斯基垫圈或谢尔宾斯基筛,是一个分形有吸引力的固定集,具有等边三角形的整体形状,递归地细分为较小的等边三角形。最初构造为曲线,这是自相似集合的基本示例之一 - 也就是说,它是一种数学生成的模式,在任何放大或减少下都是可重复的。它以波兰数学家Wacław Sierpiński的名字命名,但在Sierpiński工作之前的许多世纪就作为装饰图案出现。

参考内容:
Rule_90 | wikipedia:
https://en.wikipedia.org/wiki/Rule_90
Sierpiński_triangle | wikipedia:
https://en.wikipedia.org/wiki/Sierpiński_triangle