输出特定矩阵
【问题描述】用户输入正整数n(1<=n<=9),输出n*n的特定矩阵,矩阵元素为小于等于n的正整数,其排列规律如下:例如n=5,输出矩阵为:(行元素间隔1个空格,行间无空行)(请仔细分析矩阵元素和行号列号间的关系)
1 1 1 1 1
1 2 2 2 2
1 2 3 3 3
1 2 3 4 4
1 2 3 4 5
【输入形式】一个正整数, 值在区间
【输出形式】n*n的特定矩阵, 其排列规律见输出示例
【样例输入】3
【样例输出】
1 1 1
1 2 2
1 2 3
请问这个题有简单的方法吗 这个问题实际上是要求构建一个特殊的矩阵,矩阵的大小为n*n,矩阵元素为小于等于n的正整数,规则是行的每个元素都不大于其列数。从矩阵规律来看,矩阵的第i行的第j列的元素值等于min(i+1, j)。我们可以根据这个规则,用Python的双层循环来构造这个矩阵。以下是一个简单的Python实现:
def print_matrix(n):
for i in range(n):
row = []
for j in range(n):
row.append(str(min(i+1, j+1)))
print(' '.join(row))
print_matrix(3)# 输入样例
运行这个程序并输入3,你将得到如下输出:
1 1 1
1 2 2
1 2 3
这个程序的工作方式是,对于每个i,j位置,计算出最小的值,并将其添加到该行的列表中。完成一行后,使用空格将其连接起来并打印出来。 不知道你看出规律没有,就是ai j = min(i,j),看出来了思路一下就有了 yinda_peng 发表于 2023-6-6 13:41
不知道你看出规律没有,就是a = min(i,j),看出来了思路一下就有了
aij怎么打的? sfqxx 发表于 2023-6-6 17:42
aij怎么打的?
高级模式,有个下标 yinda_peng 发表于 2023-6-6 21:04
高级模式,有个下标
ok
页:
[1]