C 三态细胞自动机规则是如何生成的?

C 三态细胞自动机规则是如何生成的?,c,algorithm,cellular-automata,C,Algorithm,Cellular Automata,让我们将邻域限制为n=1(这意味着我们总是需要3个单元来计算下一代单元) 下面是一个2状态规则的示例。注意,规则的上行是按特定顺序生成的,而下行是数字30的位表示 我找不到一个3状态CA的等价物的单一可视化。按照2状态CA的逻辑,它应该包含27个可能的结果,但我不知道它们应该以什么顺序生成。下一行应为30个三值(前导零总共占据27个位置) 是否有一个通用的算法来按照CAs的常规顺序生成这些排列(无论状态数如何) 事先非常感谢,如果这个问题很愚蠢,我很抱歉(您使用的是用于基本CA的Wolfram

让我们将邻域限制为n=1(这意味着我们总是需要3个单元来计算下一代单元)

下面是一个2状态规则的示例。注意,规则的上行是按特定顺序生成的,而下行是数字30的位表示

我找不到一个3状态CA的等价物的单一可视化。按照2状态CA的逻辑,它应该包含27个可能的结果,但我不知道它们应该以什么顺序生成。下一行应为30个三值(前导零总共占据27个位置)

是否有一个通用的算法来按照CAs的常规顺序生成这些排列(无论状态数如何)


事先非常感谢,如果这个问题很愚蠢,我很抱歉(

您使用的是用于基本CA的Wolfram代码(来自Stephen Wolfram)。 如果您使用更多的州或更大的社区,那么自然地扩展它就足够了

你的问题并不愚蠢

对于三种状态,这将给出三元数。首先以三元(降序)写出所有三位数字:

其中有27个3^3,222_3=26,221_3=25001_3=1000_3=0

现在将30分解为基数3 27位数字:30=1*3^3+1*3^1,因此只有两位数字等于1,第四位和第二位(从右起),这是半径1 3状态CA的规则30:

000000000000000000000001010
此CA的行为与规则30 radius-1 2-状态CA非常不同

以下是radius-1 3-状态的规则33(33=1*3^3+2*3^1):


因此,对于n,r,按降序枚举以n为底的所有2r+1位数字,并为每个数字关联[0,n[.

中的一个值,您使用的是用于基本CA的称为Wolfram代码(来自Stephen Wolfram)。 如果您使用更多的州或更大的社区,那么自然地扩展它就足够了

你的问题并不愚蠢

对于三种状态,这将给出三元数。首先以三元(降序)写出所有三位数字:

其中有27个3^3,222_3=26,221_3=25001_3=1000_3=0

现在将30分解为基数3 27位数字:30=1*3^3+1*3^1,因此只有两位数字等于1,第四位和第二位(从右起),这是半径1 3状态CA的规则30:

000000000000000000000001010
此CA的行为与规则30 radius-1 2-状态CA非常不同

以下是radius-1 3-状态的规则33(33=1*3^3+2*3^1):


因此,对于n,r,按降序列举以n为基数的所有2r+1位数,并为它们中的每一个关联[0,n[。

感谢您善意的回答!这非常有帮助!感谢您善意的回答!这非常有帮助!
000000000000000000000001020