2015-03-25 59 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