康威生命游戏S3/B23
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
本题目由803班杨显斌同学供题
题目背景
康威生命游戏(Game of Life),剑桥大学约翰·何顿·康威设计的计算机程序,它是一种元胞自动机。
每个方格中都可放置一个生命细胞,每个生命细胞只有两种状态:“生”或“死”。
用黑色方格表示该细胞为“生”,空格(白色)表示该细胞为“死”。或者说方格网中黑色部分表示某个时候某种“生命”的分布图。生命游戏想要模拟的是:随着时间的流逝,这个分布图将如何一代一代地变化。
游戏开始时,每个细胞随机地设定为“生”或“死”之一的某个状态。然后,根据某种规则,计算出下一代每个细胞的状态,画出下一代细胞的生死分布图。
应该规定什么样的迭代规则呢?需要一个简单的,但又反映生命之间既协同又竞争的生存定律。为简单起见,最基本的考虑是假设每一个细胞都遵循完全一样的生存定律
再进一步,把细胞之间的相互影响只限制在最靠近该细胞的8个邻居中。
也就是说,每个细胞迭代后的状态由该细胞及周围8个细胞状态所决定。作了这些限制后,仍然还有很多方法来规定“生存定律”的具体细节。例如,在康威生命游戏中,规定了如下生存定律:
(1)当前细胞为死亡状态时,当周围有3个存活细胞时,则迭代后该细胞变成存活状态(模拟繁殖);若原先为生,则保持不变。
(2)当前细胞为存活状态时,当周围的邻居细胞低于两个(不包含两个)存活时,该细胞变成死亡状态(模拟生命数量稀少)。
(3)当前细胞为存活状态时,当周围有两个或3个存活细胞时,该细胞保持原样。
(4)当前细胞为存活状态时,当周围有3个以上的存活细胞时,该细胞变成死亡状态(模拟生命数量过多)。 可以把最初的细胞结构定义为种子,当所有种子细胞按以上规则处理后,可以得到第1代细胞图。按规则继续处理当前的细胞图,可以得到下一代的细胞图,周而复始。
题目描述
初始状态给定一个16*16的细胞状态图: 其中_“.”为死细胞,“#”为活细胞_
现在你要做的是模拟出经过n轮迭代后细胞矩阵新的样子,注意!这个矩阵的边界由一圈永远不变的死细胞组成
输入格式
第一行为 n
接下来是一个16*16的矩阵
输出格式
一个16*16的矩阵
输入输出样例 #1
输入 #1
3
................
......#.........
......#.........
......#.........
................
................
................
................
................
................
................
................
................
................
................
................
输出 #1
................
................
.....###........
................
................
................
................
................
................
................
................
................
................
................
................
................
说明/提示
细胞演变过程V
n=3
..... ..... ..... ..... .....
..#.. ..~.. ..... ..@.. ..#..
..#.. .@#@. .###. .~#~. ..#..
..#.. ..~.. ..... ..@.. ..#..
..... ..... ..... ..... .....
第一代 第二代 第三代
“.”为死细胞,“#”为活细胞,“~”为将死细胞,“@”为将活细胞
2 =< n =< 256