实现Cellular Automaton? “规则110”
我想知道如何使用规则110,55行和14个单元格。然后我必须在LED矩阵显示器中显示它。
无论如何我的问题是,我怎样才能实现这样的自动机?
我真的不知道从哪里开始,有人可以说明如何处理这个问题?
我必须遵循一个具体的方法吗?
谢谢
--PROGRAM使用IS - > C.
编辑
char array[54][14];
for(v=0;v<55;v++){
for(b=0;b<15;b++){
if(org[v][b-1]==0 && org[v][b]==0 && org[v][b+1] == 0)
{
array[v][b]=0;
}
array[v][b]=org[v][b];
}
}
那有意义吗 ?? org代表原创
没有找到相关结果
已邀请:
1 个回复
担每棱绰
其中
是计算下一个状态的函数。 下一步是提出一个表示状态的数据结构。这实际上很简单 - 基本1 d元胞自动机的状态只是1和0的向量。 所以你需要一个由14个小数组组成的数组。空间不会成为问题,所以使用int:
结束条件很简单 - 你应该做55行,所以你需要
请注意,为行提供0-54行,即55. C中的一个好的基本模式是从0开始,后增量,并且测试少于。你在C中编写的10个循环中有9个可能会有这种模式。 现在,最后,问题是如何实施您的规则。不幸的是,由于这是C,你不能像我的描述一样简单地做到这一点;规则必须更新矢量。这看起来很像
现在,我不打算告诉你如何计算更新,因为那样你就没有任何乐趣。但是你可能会发现关于规则110的维基百科文章很有意思。 当你阅读它时,思考一下:这个简单的规则就是“图灵完成” - 这意味着它能够代表任何计算,或许有很多烦恼。这个简单的规则本身就是理论意义上的“计算机”。 更新 好的,关于规则的更多一点。查看Wiki文章中的规则表。它显示的是你获取数组的三个单元格并确定三个单元格中的下一个单元格的下一个值。 所以在你的规则中,你需要传入的数组,t和下一个瞬间的数组,称之为t1。
您想要遍历数组的每个单元格
并检查细胞,以及左右两侧的细胞
等等。你需要考虑边缘发生的事情,即
或
。 Fincally,你需要另一个
循环将
复制回
。