【问题标题】:Normal Magic Square (By Loop)普通魔方(循环)
【发布时间】:2015-03-25 00:43:25
【问题描述】:

有谁知道如何实现一个函数来确定矩阵是否是幻方?例如:

>>> is_magic_square([[2, 7, 6], [9, 5, 1], [4, 3, 8]])
True

这是我对行总和的方法:

def row_sum(rows):
  return (list (map (lambda x: sum(x), rows)))

我想知道如何获得两条对角线的总和。

【问题讨论】:

  • 向我们展示您的尝试
  • 转置矩阵并检查总和。正常检查总和。然后检查两条对角线。
  • 如何在python中转置list的列表? @MalikBrahimi
  • 我的回答有什么问题?

标签: python list dictionary lambda


【解决方案1】:
rows = all(sum(row) == sum(matrix[0]) for row in matrix)
cols = all(sum(col) == sum(map(list, zip(*matrix))[0]) for col in matrix)

diag1 = sum(matrix[i][i] for i in range(3)) == sum(matrix[0])
diag1 = sum(matrix[2-i][i] for i in range(3)) == sum(matrix[0])

print rows and cols and diag1 and diag2 # magic or not

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 2020-05-26
    • 2016-04-06
    • 1970-01-01
    • 2020-04-22
    • 2012-07-18
    • 2016-05-02
    相关资源
    最近更新 更多