题解 | #牛牛的矩阵乘法#

牛牛的矩阵乘法

https://www.nowcoder.com/practice/4356eb31276b4b7689a4cf0997647f88

import copy
x = [[13, -1, 4], [5, 0, 6], [1, 9, -3]]
# y = x.copy()
y = copy.deepcopy(x)
# print(y)
# for i in range(len(y)):
#     for j in range(len(y[i])):
#         y[i][j] += 1
# 因为该题目答案错了,根据题目答案的意思y矩阵并没有在x的矩阵的对应位置的元素值加1,而是完全等于x矩阵。所以注释了上段代码。
# print(y)

# z = [[]]
# 这样操作的效果相当于对[0]*3的一维列表复制了3次,也就是说,当更改其中一个列表的值时,实际上对z列表中的这3个列表都修改了值。
# z = [[0] * 3] * 3
# 这个赋初值的方法有问题,一旦这样做,那么后面的列表都和前面的列表的元素值一样,
# 因为是直接相乘赋值的,相当于后面两个直接复制了前面定义的那一个两次。
# z = [[0 for i in range(3)] for j in range(3)]
# 这样才是正确的
z = list(list(0 for i in range(3)) for _ in range(3))
# 这样也是正确的
# 但下面这样是错误的,这样是相当于创建了1行3列的二维数组。
# z = list(list(0 for _ in range(3)))
# 总之,有几个嵌套的list()函数就是几维数组,有几个嵌套的[]就是几维数组。

# z = [[0,0,0],[0,0,0],[0,0,0]]
# print(z)
# z = [[0] * 3 for _ in range(3)]
for i in range(len(y)):  # 行
    for j in range(len(y[i])):  # 列
        # z.append()
        #         for k in x[i]:
        #             k * y[j][i]
        #             z[i][j] += k * y[j][i]
        #         z[i][j] = x[i][j] * y[i][j]
        length = 0
        width = 0
        while length < len(x) and width < len(x):
            z[i][j] += x[i][width] * y[length][j]
            # print(z[1][0])
            length += 1
            width += 1
print(z)

全部评论

相关推荐

稚名不带撇:感觉学院本就已经废了,不是能不能进公司的问题了,是根本就没有啥面试,boss沟通了一千多,回我消息的才89,面试的才二十几个,但基本上都是小公司点击就送,唯一一次有1000+的公司面试,面的很好全回答出来了,项目这块个人感觉也说的不错,甚至面试官最后还直接给我介绍公司业务和看公司系统这些,介绍的也比较详细,说了40分钟到一个小时左右,说怕给我offer我不喜欢这种模式啥啥啥的,鼠鼠以为应该稳了,但是最后还是挂了,我问我们老师他说这种情况大概率是学历比你高的出现了,虽然可能问题没有全回答出来,但是学历把你爆了
秋招,不懂就问
点赞 评论 收藏
分享
已注销:bro不如吃顿疯狂星期四
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务