python魔方阵又称纵横图,是一种n行n列、由自然数1~n×n组成的方阵,该方阵中的数符合以下规律: 1. 方阵中的每个元素都不相等。 2. 每行、每列以及主、副对角线上的个元素之和都相等。 本实例要求编写程序,输出一个5行5列的魔方阵。
时间: 2024-09-15 11:06:19 浏览: 67
Python魔方阵,也被称为哈密尔顿矩阵,是一个特殊的数独形式,它的特点是每一行、每一列以及对角线上所有数字之和都是相同的。要生成一个5x5的魔方阵,你可以按照以下步骤编写程序:
```python
def create_hamiltonian_matrix(n):
target_sum = n * (n + 1) // 2 # 每行、列及对角线总和
matrix = [[0] * n for _ in range(n)]
current_num = 1
row, col = 0, 0
while current_num <= n**2:
matrix[row][col] = current_num
current_num += 1
# 移动到下一个位置
if col == n - 1:
row += 1
col = 0
elif row == n - 1:
col += 1
else:
if col < row:
col += 1
else:
row += 1
return matrix
# 输出5x5的魔方阵
print(create_hamiltonian_matrix(5))
```
这个函数首先计算出每行每列和对角线的目标和,然后按规则填充矩阵。注意,我们遵循一种特定的移动顺序,如右、下、左上、左、右下的顺序,保证每次都能保持目标和。
阅读全文