生活的游戏,第2部分,稀疏矩阵

生命的游戏,包括无限膨胀的宇宙,是一个华丽的应用MATLAB稀疏矩阵。

内容

的代码

生活的宇宙在游戏中是由一个稀疏矩阵表示X主要是所有零。唯一的非零元素的活细胞。我们首先描述代码实现Conway法则:

  • 活细胞有两个住邻居,或任何细胞有三个住邻居,在下一步还活着。

在任何特定的一步进化,X只代表一个有限的宇宙的一部分。如果任何细胞靠近边缘的这一部分,我们重新分配存储空间来容纳人口扩张。这只需要添加更多的列指针并不代表大量额外的内存。

一个基本的操作数住邻居。这涉及到一个索引向量p,避免了边缘元素。

% m =大小(X, 1);% p = 2: m - 1;

这里的代码创建了一个稀疏矩阵N之间的元素08给住邻居的计数。

% N =稀疏(m m);% N (p, p) = X (p - 1, p - 1) + (p, p - 1) + X (p + 1, p - 1) + (p - 1, p) +…% (p - 1, + 1页)+ X (p, p + 1) + X (p + 1, + 1) + X (p + 1, p);

这是我最喜欢之一MATLAB语句。用MATLAB对稀疏矩阵,矩阵的逻辑操作这是康威规则:

X = (X % & (N = = 2)) | (N = = 3);

滑翔机

让我们看看这是如何工作的滑翔机。

X =稀疏(7);X (3:5, 3:5) = [0 1 0;0 0 1;1 1 1];disp (“X”)t = int2str (X);t (t = =' 0 ')=“。”;disp (t)
X。。。。。。。。。。。。。。。。。1。。。。。。。1。1 1 1。。。。。。。。。。。。。。。。

数的八个邻居还活着。我们得到一个云的价值观在滑翔机提供普查的邻居。

m =大小(X, 1);p = 2: m - 1;N =稀疏(m m);N (p, p) = X (p - 1, p - 1) + X (p, p - 1) + (p + 1, p - 1) + X (p - 1, p) +X (p - 1, + 1页)+ (p, p + 1) + X (p + 1, + 1) + X (p + 1, p);disp (“N”)t = int2str (N);t (t = =' 0 ')=“。”;disp (t)
N。。。1 1 1。1 1 2 1。。1 3 5 3 2。。1 1 2 3 2。。1 2 3 2 1。。。。。。。。

只有鼻子的滑翔机是活的,有两个邻居生活。

disp (“X & (N = = 2)”)t = int2str (X & (N = = 2));t (t = =' 0 ')=“。”;disp (t)
X & (N = = 2)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。1。。。。。。。。。。。。。。。。

其他四个细胞有三个邻居生活

disp (“N = = 3”)t = int2str (N = = 3);t (t = =' 0 ')=“。”;disp (t)
N = = 3。。。。。。。。。。。。。。。。。。。。。。。1。1。。1 .。。1。。。。。。。。。。

“和ing”这两个矩阵一起“|”给未来取向的滑翔机。

disp (' (X) & (N = = 2) | (N = = 3) ')t = int2str ((X & (N = = 2)) | (N = = 3));t (t = =' 0 ')=“。”;disp (t)
(X & (N = = 2)) | (N = = 3)。。。。。。。。。。。。。。。。。。。。。。。1。1。。1 1。。1。。。。。。。。。。

重复三次移动滑翔机,正确的一步。

生活词汇

生活词汇是文化宝库。它应该被联合国教科文组织列为世界文化遗产。主站点是由斯蒂芬·a .银。他有很多其他的人的帮助。我给这两个链接部分上周的博客之一。只是去闲逛。这是很大的乐趣。

文字版:< http://www.argentum.freeserve.co.uk/lex_home.htm >

图形版本:< http://www.bitstorm.org/gameoflife/lexicon>

词典有866个条目。大约一半的人的历史和计算复杂度的兴趣。阅读学习的历史生活的游戏。例如,人口开始被称为“约柜”需要736692步稳定。其中一半,447,人口开始矩阵,我们可以使用。

Achim p144

life_lex读取文本版本的词典和缓存一个本地副本,如果不存在。然后使用随机启动配置条目。仅举一个例子,我们学习词汇,阿齐姆Flammenkamp人口被发现后,院长Hickerson,大卫贝尔在1994年,它的周期是144年。我们显示每一个第四步。




使用MATLAB®7.14发表

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。