Python:求m阶方阵的n次幂(不使用numpy模块)

       最近在学离散数学,碰到一个问题,解题时需要求邻接矩阵的幂。这里说明一下,邻接矩阵都是方阵,方阵就是行数和列数相等的矩阵。题目给的方阵大多都是4阶或5阶,然后要根据它的n次幂来解题(n一般在1~5之间)。所以我干脆直接写一段代码来帮我快速做题,由于我的python没有numpy模块,所以我选择用较为暴力的方法来求m阶方阵的n次幂。

以下是我的代码:

n,m=map(int,input().split())  #幂,矩阵阶数
x=[]
y=[]
for i in range(0,m):          #输入矩阵
    a=list(map(int,input().split()))
    x.append(a)
    y.append(a)
while n>1:
    z=[]
    for i in y:
        b=[]
        for j in range(0,m):
            c=0
            for k in range(0,m):
                c+=i[k]*x[k][j]
            b.append(c)
        z.append(b)
    y.clear()
    for i in range(0,m):
        y.append(z[i])
    n-=1
for i in y:
    print(i)

       由于实际做题时碰到的矩阵一般不会太复杂,所以程序主要采用了暴力循环的方式,这对于求阶数太大的方阵显然是不合适的。不过,对于大多数情况都是适用的。如果各位有更好的方法,欢迎提出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值