这是如何2d蜂窝自动机规则工作? 但是,答案没有为我提供我正在寻找的东西。具体而言,我希望能够呈现这些2D蜂窝自动机器: https:/ /www.wolframscience.com/nks/p173--cellular-automata/ 在任何地方都找不到任何引用,解释了如何在实数和增长规则之间改变。在1D中,情况有很好的记录,例如这里: https://mathworld.wolfram.com/elementarycellularautomaton .html ,但在2d中,位的确切映射无处可找到。我真的想制作一个程序,这样我就可以输入数字465,它将从Wolfram书中绘制模式465。与上面链接的其他堆栈交换答案提供了一种可能的二进制映射,但是给出的方法不产生与Wolfram引用中相同的数字。二进制值465是111010001,根本不帮助我。这种特殊的形状是基于添加小区,当一个邻居当前被占用时,所以我们不应该指望连续4个,一个为四个邻居中的每一个?为了使这更令人困惑,最后两位数似乎从Wolfram页面本身的描述交换......它看起来很清楚,其他堆栈溢出答案,不仅仅是一种可能的二进制映射,而且很多鉴于已经存在具有由规则编号引用的图片的指南,我真的能够实际上能够使用这些特定的规则编号。谢谢。

有帮助吗?

解决方案

相关联的页面是正确的:

“在每种情况下,代码编号的基本2数字序列指定规则如下所示。最后一位指定在上一步上的所有邻居是白色的,所以如果所有的邻居在白色是白色的,则是白色的。第二个终点数指定如果所有邻居是白色的,但中心单元格本身是黑色的。然后,每个早期的数字都指定如果渐进的邻居是黑色的那么应该发生的事情。(比较60。)“

您可能缺少的是,如果规则编号是奇数,则空格子是不稳定的,因为其他白色单元包围的白细胞将自发地变黑。具体而言,任何数量的规则是1个模数4(即其二进制形式在01中结束的二进制形式),如465,是 “闪闪发光”,即空格子将在每个连续一代中的所有白色和全黑之间交替。

特别是,这意味着规则465 不能对应于“在恰好一个邻居当前占用时添加小区”。 (这将是二进制的第686条规则686或1010101110。)

而言,正如您所正确所指出的那样,465等于二进制中的111010001。用五个组写入两个位,它给出了01 11 01 00 01.在这些组中的每个组中,组 $ k $ (编号为 - 左从0到4)是1如果带有 $ k $ 黑色邻居将在下一代变黑,并且如果一个黑色细胞,则最左侧位为1使用 $ k $ 黑色邻居将保持黑色。

这意味着,如果在此规则下,如果有0,2,3或4个黑色邻居(因为右边位为1,则在从右侧计数为0,2,3和4中的1,则为2,3或4个黑色)如果它完全有3个黑色邻居(因为最左边的比特仅在第3组中为1),则黑色细胞将保持黑色。

事实上,从白色背景上的一个黑色像素开始模拟22代的规则,产生匹配链接页面上的图像。


ps。事实证明,规则465是”状态对称规则558= 01000101110 2 ,其与恰好一位不同,并且可以被描述为“添加单元格一个邻居被占用,在恰好一个邻居是空的时候删除单元格“。

从单个单元开始开始,似乎规则558和686相同地发展,因为从这个起点开始,它们显然永远不会用恰好具有三个现场邻居生成活台。因此,在偶数几代,闪光规则465也看起来与它们两个相同。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top