2015-03-25 39 views
-4

有谁知道如何实现一个函数来确定一个矩阵是否是一个魔方?例如:Normal Magic Square(By Loop)

>>> 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))) 

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

+2

是的,谢谢。 – jonrsharpe 2015-03-25 00:46:04

+0

告诉我们你试过的东西 – overloading 2015-03-25 00:46:27

+0

请阅读:http://stackoverflow.com/help/how-to-ask – Shashank 2015-03-25 00:50:52

回答

-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