英国数学家约翰·康威在1970年设计了一种称为**生命游戏**(Game of Life)的**细胞自动机**。
生命游戏的*世界*是个二维的细胞网格,每个细胞(格子)有**存活、死亡**两种状态,各有8个邻居。由当前状态演化下一代的规则是:
- 如果**活**细胞周围有2或3个活细胞,那么在下一代存活,否则死亡(邻居过少则孤独、过多则资源匮乏)。
- 如果**死**细胞周围有3个活细胞,那么在下一代将创生(繁殖)。
这两条规则虽然机械,却能演化出类似生命的
英国数学家约翰·康威在1970年设计了一种称为**生命游戏**(Game of Life)的**细胞自动机**。
生命游戏的*世界*是个二维的细胞网格,每个细胞(格子)有**存活、死亡**两种状态,各有8个邻居。由当前状态演化下一代的规则是:
- 如果**活**细胞周围有2或3个活细胞,那么在下一代存活,否则死亡(邻居过少则孤独、过多则资源匮乏)。
- 如果**死**细胞周围有3个活细胞,那么在下一代将创生(繁殖)。
这两条规则虽然机械,却能演化出类似生命的现象,出现一些有趣的模式。参考这个网站:[https://playgameoflife.com/](https://playgameoflife.com/)
我们来模拟下生命游戏的演化。模拟时要符合细胞自动机的三个特性:
- 并行性:每一代中,所有细胞同时演化。
- 局部性:下代细胞状态由当代的局部环境决定。
- 一致性:所有细胞遵循相同的演化规则。
#### 输入规格
- 输入有多组数据,处理到EOF为止。
- 每组数据包括:
- 首行有4个整数:行数R、列数C、迭代次数G。
- 之后有R行字符串、每行C个字符。.代表死细胞,#代表活细胞。
- 网格尺寸R、C不超过256,迭代G不超过100,所以这次暂时不用考察性能。
- 网格边界以外视为死亡细胞。
#### 输出规格
- 对每组数据,演化G代后输出状态。格式与输入规格相同。
#### 样例输入
in
3 4 1
.#..
####
#...
#### 样例输出
out
3 4 1
##..
#.#.
#.#.
#### 样例解释
- [0][0]当代是死细胞、周围有3个活细胞,下代创生。
- [0][1]当代是活细胞、周围有3个活细胞,下代维持存活。
- [0][2]当代是死细胞、周围有4个活细胞,下代仍死亡。
- [0][3]当代是死细胞、周围有2个活细胞,下代仍死亡。
- [1][1]当代是活细胞、周围有4个活细胞,下代死亡(邻居过多)。
- [1][3]当代是活细胞、周围有1个活细胞,下代死亡(邻居过少)。
- [2][2]当代是死细胞、周围有3个活细胞,下代创生。
答案:若无答案欢迎评论
生命游戏的*世界*是个二维的细胞网格,每个细胞(格子)有**存活、死亡**两种状态,各有8个邻居。由当前状态演化下一代的规则是:
- 如果**活**细胞周围有2或3个活细胞,那么在下一代存活,否则死亡(邻居过少则孤独、过多则资源匮乏)。
- 如果**死**细胞周围有3个活细胞,那么在下一代将创生(繁殖)。
这两条规则虽然机械,却能演化出类似生命的现象,出现一些有趣的模式。参考这个网站:[https://playgameoflife.com/](https://playgameoflife.com/)
我们来模拟下生命游戏的演化。模拟时要符合细胞自动机的三个特性:
- 并行性:每一代中,所有细胞同时演化。
- 局部性:下代细胞状态由当代的局部环境决定。
- 一致性:所有细胞遵循相同的演化规则。
#### 输入规格
- 输入有多组数据,处理到EOF为止。
- 每组数据包括:
- 首行有4个整数:行数R、列数C、迭代次数G。
- 之后有R行字符串、每行C个字符。.代表死细胞,#代表活细胞。
- 网格尺寸R、C不超过256,迭代G不超过100,所以这次暂时不用考察性能。
- 网格边界以外视为死亡细胞。
#### 输出规格
- 对每组数据,演化G代后输出状态。格式与输入规格相同。
#### 样例输入
in
3 4 1
.#..
####
#...
#### 样例输出
out
3 4 1
##..
#.#.
#.#.
#### 样例解释
- [0][0]当代是死细胞、周围有3个活细胞,下代创生。
- [0][1]当代是活细胞、周围有3个活细胞,下代维持存活。
- [0][2]当代是死细胞、周围有4个活细胞,下代仍死亡。
- [0][3]当代是死细胞、周围有2个活细胞,下代仍死亡。
- [1][1]当代是活细胞、周围有4个活细胞,下代死亡(邻居过多)。
- [1][3]当代是活细胞、周围有1个活细胞,下代死亡(邻居过少)。
- [2][2]当代是死细胞、周围有3个活细胞,下代创生。
答案:若无答案欢迎评论