矩阵快速幂-补充

本文介绍如何利用矩阵快速幂解决大数组递推问题,通过将递推式转化为矩阵形式,实现高效计算。示例展示了如何从递推式出发构建矩阵及进行计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

矩阵快速幂除了用于矩阵的乘法之外,还用于递推式的运算,比如1e7的数组无法存下,可以用矩阵快速幂把递推式化为矩阵,然后矩阵快速幂,例如下列式子。


b[i]=2*b[i-1]+a[i-1]; a[i]=3*b[i-1];

a[i-1]=3*b[i-2];


b[i]=2*b[i-1]+3*b[i-2];

b[i+2]=2*b[i+1]+3*b[i];

再根据

EXAMPLE:

  递推式: d(n + 2) = p * d(n + 1) + (1 - p) * d(n);

  令G(n) = (d(n + 2), d(n + 1))^T;

  则 G(n + 1) = M * G(n);

  解得 M = p   1 - p

               1    0

  G(n) = (M ^ n) * G(0);

#

得p=2 1-p=3

也就是得a=(3,2) b=(0,1)

           (3,2)

用矩阵乘法表示的话 (横*竖) 3*0+2*3     3*1+2*2

已经很清楚了。找到了递推式,代模版



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值