用python写:蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 例如,当输入5时,应该输出的三角形为: 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11
时间: 2024-01-10 19:03:13 浏览: 205
下面是Python代码实现蛇形矩阵:
```python
num = int(input("请输入矩阵的大小: "))
matrix = [[0] * num for i in range(num)] # 初始化一个全0矩阵
row, col = 0, 0 # 起始位置
for i in range(num**2):
matrix[row][col] = i + 1
if row + col == num - 1: # 到达对角线
if row <= col:
row += 1 # 在右上角,向右移动
else:
col += 1 # 在左下角,向下移动
elif col == 0: # 在第一列,向上移动
row -= 1
elif row == 0: # 在第一行,向右移动
col -= 1
else: # 向左下移动
row += 1
col -= 1
# 输出蛇形矩阵
for i in range(num):
for j in range(num):
if matrix[i][j] != 0:
print(matrix[i][j], end=" ")
print()
```
运行结果为:
```
请输入矩阵的大小: 5
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
```
相关问题
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。如: 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11
蛇形矩阵是指一种特定模式填充的二维数组,其中元素按照一定的规律以类似蛇游动的方式排列。不同的上下文可能有不同的规则用于创建这种类型的矩阵。
### 定义及生成规则
#### 规则一:上三角蛇形矩阵
在这种情况下,数字从1开始按递增顺序排布,在每一行中先向右移动再向下移动形成一个上三角形状。例如当N=4时:
```
1 2 4 7
3 5 8 11
6 9 12 14
10 13 15 16
```
#### 规则二:回字型蛇形矩阵
此版本是从左上方角落开始,沿着矩形框边缘顺时针或者逆时针方向螺旋地放置连续增加的整数直到填满整个矩阵。比如给定尺寸为n*m的矩阵(n,m分别为行列),那么会像下面这样填充(假设n=m=5):
```
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
```
#### 规则三:中心出发逆时针环绕
对于奇数阶方阵的情况,可以从最中间的位置开始,以逆时针的方向围绕着中心点逐步向外扩展,直至所有的位置都被数值所占据。这通常适用于正方形矩阵,并且起始值一般放在中央单元格处。
### 示例代码 (Python)
这里提供一段简单的 Python 代码来演示如何构建第二种情况下的蛇形矩阵(即回字型):
```python
def generate_spiral_matrix(rows, cols):
matrix = [[0] * cols for _ in range(rows)]
num = 1
top, bottom, left, right = 0, rows - 1, 0, cols - 1
while True:
if left > right or top > bottom:
break
# Fill the top row from left to right.
for i in range(left, right + 1):
matrix[top][i] = num
num += 1
top += 1
# Fill the right column from top to bottom.
for i in range(top, bottom + 1):
matrix[i][right] = num
num += 1
right -= 1
if top <= bottom:
# Fill the bottom row from right to left.
for i in range(right, left - 1, -1):
matrix[bottom][i] = num
num += 1
bottom -= 1
if left <= right:
# Fill the left column from bottom to top.
for i in range(bottom, top - 1, -1):
matrix[i][left] = num
num += 1
left += 1
return matrix
# Example usage:
rows, cols = 5, 5
spiral_matrix = generate_spiral_matrix(rows, cols)
for row in spiral_matrix:
print(' '.join(f'{x:2d}' for x in row))
```
这段代码将会打印出一个大小为`rows x cols`的蛇形矩阵。
python HJ35 蛇形矩阵
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。下面是使用Python实现蛇形矩阵的代码:
```python
def snake_matrix(n):
matrix = [[0] * n for _ in range(n)] # 创建一个n×n的矩阵,初始值为0
num = 1 # 要填入矩阵的数值
for i in range(n):
if i % 2 == 0:
for j in range(i + 1):
matrix[j][i - j] = num
num += 1
else:
for j in range(i + 1):
matrix[i - j][j] = num
num += 1
return matrix
n = int(input("请输入一个正整数:"))
matrix = snake_matrix(n)
for row in matrix:
for val in row:
print(val, end=" ")
print()
```
阅读全文
相关推荐














