这周实验不难,我就不花过多时间解析了,大家看看题目,如果有问题可以私聊我,应该没有大问题,有思路错误,看一下答案也就能理解了
4.输入一个矩阵,矩阵通过键盘输入,(每行中的数据用逗号分隔,行之间用空格分隔)。编写程序计算所有元素之和,主对角线元素。 提示:参考下面题目中输入矩阵方法:
def f(a): #参数a是表示矩阵的列表对象 r=len(a) #获得原矩阵的行数 c=len(a[0]) #获得原矩阵的列数 b=[] #用列表保存转置矩阵 for n in range(c): #初始化转置矩阵 b.append([0]*r) for i in range(r): #完成矩阵转置 for j in range(c): b[j][i]=a[i][j] return b a=input('请输入原矩阵:') a=a.split(' ') #按空格分解为列表,先分解出每行的数据 for n in range(len(a)): #分解行中的每列的数据 a[n]=a[n].split(',') print('原矩阵:') for r in a: #遍历行 for c in r: #遍历行中的元素 print('%-4s'%c,end='')#每个数据占4列,左对齐,不换行 print() #每行输出之后换行 b=f(a) print('转置矩阵:') for r in b: for c in r: print('%-4s'%c,end='') print()
|
答案:
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/5 10:49
def f(a): # 参数a是表示矩阵的列表对象
r = len(a) # 获得原矩阵的行数
b = 0 # 用列表保存转置矩阵
for i in range(r): # 完成矩阵转置
b += sum(a[i])
return b
a = input('请输入原矩阵:')
a = a.split(' ') # 按空格分解为列表,先分解出每行的数据
for n in range(len(a)): # 分解行中的每列的数据
a[n] = list(map(int, a[n].split(',')))
print('原矩阵:')
for r in a: # 遍历行
for c in r: # 遍历行中的元素
print('%-4s' % c, end='') # 每个数据占4列,左对齐,不换行
print() # 每行输出之后换行
b = f(a)
if len(a) == len(a[0]):
print("主对角线为:", end='')
for i in range(len(a)):
print(a[i][i], end=' ')
print()
else:
print("没有主对角线")
print("矩阵和为:%s" % b)
5.定义函数,f()输出n阶杨辉三角运行示例如下: 示例运行结果如下。 请输入正整数n:7 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 |
答案:
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/5 11:25
def yanghui(n, lis: list):
for i in range(n):
lis1 = [1]
lis.append(lis1)
if i == 0:
continue
last = lis[i - 1]
for j in range(i - 1):
lis1.append(last[j] + last[j + 1])
for q in lis1:
print(q, end=' ')
else:
print('1')
lis1.append(1)
lis[i] = lis1
n = int(input("请输入正整数n:"))
lis = []
yanghui(n, lis)