pythonn阶幻方矩阵是指将1,2,3,...,n²数字填入n*n矩阵中,每行和,每列和,两条对角线的和均相等。给定n阶矩阵,验证是否n阶幻方矩阵。
时间: 2024-05-15 17:13:44 浏览: 14
可以通过以下步骤来验证一个矩阵是否为n阶幻方矩阵:
1. 验证每行的和是否相等,如果不相等,则不是幻方矩阵。
2. 验证每列的和是否相等,如果不相等,则不是幻方矩阵。
3. 验证两条对角线的和是否相等,如果不相等,则不是幻方矩阵。
以下是实现代码:
```python
def is_magic_square(matrix):
n = len(matrix)
target_sum = n * (n ** 2 + 1) // 2
# 验证每行的和是否相等
for i in range(n):
row_sum = sum(matrix[i])
if row_sum != target_sum:
return False
# 验证每列的和是否相等
for j in range(n):
col_sum = sum(matrix[i][j] for i in range(n))
if col_sum != target_sum:
return False
# 验证主对角线的和是否相等
diagonal_sum = sum(matrix[i][i] for i in range(n))
if diagonal_sum != target_sum:
return False
# 验证副对角线的和是否相等
diagonal_sum = sum(matrix[i][n - i - 1] for i in range(n))
if diagonal_sum != target_sum:
return False
return True
```
这个函数接受一个二维矩阵作为输入,返回一个布尔值,表示这个矩阵是否为n阶幻方矩阵。