矩阵快速幂算法Python
时间: 2024-03-28 18:33:09 浏览: 144
矩阵快速幂算法是一种高效计算矩阵幂的方法,它可以在较短的时间内计算出一个矩阵的任意正整数次幂。下面是矩阵快速幂算法的Python实现:
```python
def matrix_multiply(a, b):
# 矩阵相乘
rows_a = len(a)
cols_a = len(a[0])
cols_b = len(b[0])
result = [[0] * cols_b for _ in range(rows_a)]
for i in range(rows_a):
for j in range(cols_b):
for k in range(cols_a):
result[i][j] += a[i][k] * b[k][j]
return result
def matrix_power(matrix, n):
# 矩阵快速幂
rows = len(matrix)
cols = len(matrix[0])
result = [[0] * cols for _ in range(rows)]
for i in range(rows):
result[i][i] = 1 # 初始化为单位矩阵
while n > 0:
if n % 2 == 1:
result = matrix_multiply(result, matrix)
matrix = matrix_multiply(matrix, matrix)
n //= 2
return result
```
使用上述代码,你可以通过调用`matrix_power(matrix, n)`函数来计算矩阵`matrix`的`n`次幂。其中,`matrix`是一个二维列表表示的矩阵,`n`是一个正整数。
阅读全文