不使用numpy如何校验3x3方阵各列之和是否符合幻方要求
3x3幻方列和校验实现方案(无numpy依赖)
核心实现思路
- 第一步先做合法性校验:先验证输入的二维列表是标准3x3方阵,避免后续访问索引时报错
- 第二步逐列遍历求和:固定列索引后,遍历所有行的对应位置元素累加,得到当前列的总和
- 第三步实时校验:每计算完一列的和就和目标值15比对,任意一列不满足条件直接终止校验返回False,所有列都符合才返回True
可直接运行的代码示例
def check_magic_columns(square): # 校验输入为3x3方阵 if len(square) != 3 or any(len(row) != 3 for row in square): return False TARGET = 15 # 遍历0、1、2三个列索引 for col in range(3): current_sum = 0 for row in square: current_sum += row[col] if current_sum != TARGET: return False return True # 测试给定的幻方 if __name__ == "__main__": magic_square = [[8, 1, 6], [3, 5, 7], [4, 9, 2]] print(check_magic_columns(magic_square)) # 输出结果为True
扩展说明
如果后续需要适配任意n阶幻方的列校验,只需把代码里固定的3替换成len(square)即可,逻辑完全通用。
内容的提问来源于stack exchange,提问作者Mehrad Jass
相关产品推荐
相关产品推荐

