奇数魔方阵python函数,1总在第一行中间,下一个数在上一个数的右上角
时间: 2024-10-14 22:16:39 浏览: 47
奇数魔方阵(也称为幻方)是一种特殊的正方形矩阵,其中每一行、每一列以及两个对角线上的数字之和都相等。在Python中,我们可以创建一个函数来生成这样的数组,首项通常设置为1,然后后续的奇数按照规则填充到矩阵中。下面是一个简单的函数实现示例:
```python
def odd_square(n):
# 初始化n*n的二维列表
magic_square = [[0] * n for _ in range(n)]
# 将1放在中心位置
magic_square[n//2][n//2] = 1
# 遍历奇数并填充到矩阵
num = 3
row, col = n//2 - 1, n//2 + 1 # 上一个数的位置
while num <= (n**2) // 2:
if row >= 0 and row < n and col >= 0 and col < n:
magic_square[row][col] = num
num += 2
# 移动到右上角
row -= 1
col += 1
else:
# 如果到达边界,换到下一行
row, col = n - 1, 0 if row == n - 1 else col + 1
row += 1
return magic_square
# 示例
print(odd_square(3))
```
这个函数会打印出3x3的奇数魔方阵,如果需要其他大小的魔方阵,只需传入不同的整数作为参数。
阅读全文