为何该生命游戏字符串题的预期输出以0而非1开头?
生命游戏示例输出开头为0的原因分析
首先把输入字符串转换成3×3的网格(_作为行分隔符):
行0: 0 0 0 行1: 1 1 1 行2: 0 0 0
我们重点看输出的第一个细胞,也就是原网格行0列0的位置(初始状态为0,死亡):
根据规则,死亡细胞只有当恰好有3个存活邻居时才会复活。我们数它的存活邻居数量:
- 网格外的细胞都视为死亡,这个位置的8个邻居里,只有行1列0(值为1)、行1列1(值为1)这两个是存活状态,总共2个存活邻居。
- 因为存活邻居数不等于3,所以这个细胞保持死亡状态,也就是输出的第一个字符是0。
补充验证行0列1的细胞:它的存活邻居是行1列0、行1列1、行1列2,共3个,所以死亡细胞复活为1,对应输出的第二个字符是1,和示例输出完全匹配。
内容的提问来源于stack exchange,提问作者Diego Gurgel
相关产品推荐
相关产品推荐

