python判断矩阵幻方
时间: 2023-11-08 18:51:22 浏览: 226
要判断一个矩阵是否是幻方,需要满足以下条件:
1. 矩阵必须是方阵,即行数和列数相等;
2. 所有元素都是正整数;
3. 矩阵中所有行、列、对角线上的元素之和相等。
以下是Python实现:
```python
def is_magic_square(matrix):
n = len(matrix)
# 检查是否是方阵
if n != len(matrix[0]):
return False
# 检查所有元素是否都是正整数
for i in range(n):
for j in range(n):
if matrix[i][j] <= 0:
return False
# 计算每行、每列、对角线上的元素之和
magic_sum = sum(matrix[0])
for i in range(1, n):
if sum(matrix[i]) != magic_sum:
return False
if sum(matrix[j][i] for j in range(n)) != magic_sum:
return False
if sum(matrix[i][i] for i in range(n)) != magic_sum:
return False
if sum(matrix[i][n-i-1] for i in range(n)) != magic_sum:
return False
# 如果所有条件都满足,则是幻方
return True
```
通过调用该函数,可以判断一个矩阵是否是幻方。例如,判断以下矩阵是否是幻方:
```
8 1 6
3 5 7
4 9 2
```
可以这样调用函数:
```python
matrix = [[8, 1, 6], [3, 5, 7], [4, 9, 2]]
if is_magic_square(matrix):
print("这是一个幻方")
else:
print("这不是一个幻方")
```
输出结果应该是:
```
这是一个幻方
```
阅读全文