如何生成元素为连续递增整数的n行m列矩阵
问题需求
已知矩阵规模为n行m列,需要构造由连续整数构成的矩阵:每行包含m个连续递增数字,整体元素保持逐行递增顺序。以3行4列矩阵为例,输出结果如下:
[ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12] ]
实现思路
这个问题的实现逻辑十分简单,核心要点只有一条:每一行的起始元素是上一行最后一个元素的下一个值,这也是本问题唯一需要遵守的规则。
按照该规则:
- 生成第一行时,由于矩阵初始为空,直接从1开始取值即可
- 生成后续行时,元素取值范围为
arr[i-1][-1] + 1到arr[i-1][-1] + m
实现代码
mat = [] n,m = map(int,input().split()) for row in range(n): # 首行从1开始计数,其余行从上一行最后一个元素+1的位置开始 if row == 0: k = 1 else: k = mat[row-1][-1] + 1 x = [] # 逐行填充m个连续递增的整数 for j in range(k,k+m): x.append(j) mat.append(x) print(mat)
内容的提问来源于stack exchange,提问作者Datta_T
相关产品推荐
相关产品推荐

