python蛇形矩阵
时间: 2023-11-01 18:58:48 浏览: 187
蛇形矩阵是一种按照回字蛇形填充数字的矩阵。根据输入的行数n和列数m,可以创建一个n行m列的矩阵。然后按照特定的顺序将数字1到n×m填充到矩阵中,使得矩阵呈现出蛇形的形状。
下面是一段Python代码,可以实现蛇形矩阵的生成:
```python
n, m = map(int, input().split())
res = [[0 for i in range(m)] for i in range(n)]
dx, dy = [-1, 0, 1, 0], [0, 1, 0, -1]
x, y, d = 0, 0, 1
for i in range(1, n * m + 1):
res[x][y] = i
a, b = x + dx[d], y + dy[d]
if a < 0 or a >= n or b < 0 or b >= m or res[a][b] != 0:
d = (d + 1) % 4
a, b = x + dx[d], y + dy[d]
x, y = a, b
for i in range(n):
for j in range(m):
print(res[i][j], end=' ')
print()
```
这段代码会输出一个满足题目要求的蛇形矩阵。你可以在输入时指定矩阵的行数和列数,然后根据这些信息生成蛇形矩阵。
相关问题
蛇形矩阵python
蛇形矩阵是一种特殊的矩阵形式,其中数字按照蛇形填充到矩阵中。在Python中,我们可以使用numpy库来生成蛇形矩阵。首先,我们可以使用np.zeros()函数创建一个全零的矩阵,然后使用循环将数字按照蛇形填充到矩阵中。下面是一个生成蛇形矩阵的示例代码:
```python
import numpy as np
def generate_snake_matrix(n, m):
matrix = np.zeros((n, m), dtype=np.int16)
num = 1
row_start = 0
row_end = n - 1
col_start = 0
col_end = m - 1
while num <= n * m:
# 从左到右填充
for col in range(col_start, col_end + 1):
matrix[row_start][col] = num
num += 1
row_start += 1
# 从上到下填充
for row in range(row_start, row_end + 1):
matrix[row][col_end] = num
num += 1
col_end -= 1
# 从右到左填充
for col in range(col_end, col_start - 1, -1):
matrix[row_end][col] = num
num += 1
row_end -= 1
# 从下到上填充
for row in range(row_end, row_start - 1, -1):
matrix[row][col_start] = num
num += 1
col_start += 1
return matrix
# 示例调用
n = 4
m = 4
snake_matrix = generate_snake_matrix(n, m)
print(snake_matrix)
```
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()
```
阅读全文