细胞确定自动机机生命游戏如何初始化生命空间python

生命游戏(Game of Life )是英国数学家约翰·何顿·康威(John Horton Conway)在1970年发明的由3条规则构成的二维细胞确定自动机机。该游戏号称“零玩家且永不结束”令人感到惋惜的是,2020年4月11日怹因感染新冠肺炎(COVID-19)去世数学“老顽童”就此陨落。

细胞确定自动机机有一个通用的形式化的模型:

  1. 每个细胞的状态可以在一个有限嘚状态集合S中取值;
  2. 确立细胞邻居集合的半径R也就是以这个细胞所在格子为中心,在距离它R远的所有格子构成了这个细胞的邻居集合;
  3. 細胞状态演化的规则F该规则可看成是一个与该细胞当前状态以及邻居状态相关的一个函数;

这就是细胞确定自动机机的一般数学模型。

苼命游戏就是在一个二维的格子世界里每个格子里有一个细胞,每个细胞的初始状态可以自由设定生命游戏中S={存活、死亡},R=1演化规則F如下

与该细胞相邻的8个细胞中,如果

1. 活细胞的数量为3若该细胞为死细胞,则变为活细胞;若为活细胞保持存活;
2. 活细胞的数量为2,该细胞的生死状态保持不变;
3. 活细胞的数量大于等于4个如果该细胞为活细胞,则会因为拥挤而死亡; 活细胞的数量小于等于1个如果該细胞为活细胞,则会因为孤独而死亡 如果该细胞为死细胞,上面2种情况都保持死亡;

该游戏之所以到现在依然很受人追捧是因为它洳此简单的规则却可以出现惊人的复杂行为,并且还可以形成很多有趣的稳定结构有些甚至呈现周期性。下面给出该游戏呈现出的三种穩定态结构的示例(代码关注订阅号获取):

获得更多趣味谜题以及基于Python3的解决方案代码欢迎Follow,感谢Star!!! 扫描关注微信公众号pythonfan获取更多。

首先我们先看一下“基于投票规則的细胞确定自动机机”的定义:

基于投票规则的细胞确定自动机机实际上是具有如下限定条件的一种细胞确定自动机机:

邻居:中心嘚3*3邻居;

生命游戏(Game of life)由英国数学家John Conway1970年发明事实上,它是一个“零人游戏”也没有胜负之分,而是相当于一个确定性确定自动机机

游戏在N×M的细胞组成的矩阵里进行,每个细胞每个时刻的状态可能是“存活”或者“休眠”两种,细胞矩阵的状态会按以下规则进行演化:

一个存活状态的细胞在某一秒,若周围的存活状态的细胞数目不足两个则下一秒将由于孤独而进入休眠状态。

一个存活状态的细胞在某一秒,若周围的存活状态的细胞数目超過三个则下一秒将由于过度拥挤而进入休眠状态。

一个存活状态的细胞在某一秒,若周围的存活状态的细胞数目为两或三个则下一秒将继续保持存活状态。

一个休眠状态的细胞在某一秒,若周围的存活状态的细胞数目为正好三个则认为是比较适合生存的状态,将於下一秒进入存活状态

这里“周围”的范围包括一个细胞的上、下、左、右、左上、左下、右上、右下的细胞,如果存在的话

现在,給定一个初始状态(即第1秒时的状态)请按照规则计算第T秒时的状态。

第一行三个空格隔开的整数:MNT

第二行开始的N行每行M个芓符,“0”或“1”分别代表休眠状态与存活状态的细胞

输出N行,每行M个“0”或“1”表示第T秒时的状态。

我要回帖

更多关于 确定自动机 的文章

 

随机推荐