实现以下算法题(可用任意语言,默认使用整数运算;如涉及大数可对结果取模):
给定两个矩阵:
A
为
n × m
B
为
m × p
计算矩阵乘积 C = A × B(n × p)。
要求:
MOD
,输出元素对
MOD
取模的结果
给定整数 x 与非负整数 k(以及可选 MOD),计算:
x^k
x^k mod MOD
要求:
O(log k)
)
k = 0
、
x = 0
等
给定 n (n ≥ 0),计算第 n 个斐波那契数 F(n):
F(0)=0, F(1)=1
F(n)=F(n-1)+F(n-2)
要求:
2×2
矩阵快速幂在
O(log n)
时间内计算
MOD
取模
可自行设计函数签名,例如:
multiply(A, B) -> C
pow(x, k, MOD=None) -> value
fib(n, MOD=None) -> value
n
可能很大(如
10^9
),因此不能用线性 DP。