多项式取模优化齐次线性递推

本文介绍了如何利用多项式取模优化解决线性递推问题,详细阐述了从暴力方法到高效算法的转变,包括矩阵快速幂、暴力多项式快速幂和多项式取模。通过多项式取模理解线性递推,以及在求解过程中的一些常数优化技巧,如FFT长度的调整、预处理模数翻转等,使得在大规模数据下(n≤1018, m≤30000)能够快速求解。" 102525111,7578611,Unity:使用AB加载管理多图集Sprite,"['Unity3d', '游戏开发', '资源管理', 'AssetBundle', '图形处理']
摘要由CSDN通过智能技术生成

线性递推

给出长为 m m 的数列 a = a 1 , a 2 , , a m ,以及无穷数列 f f 的前 m m f 0 , f 1 , , f m 1 ,对于 im ∀ i ≥ m ,有 fi=mj=1ajfij f i = ∑ j = 1 m a j f i − j 。求 fn f n
n1018,m30000 n ≤ 10 18 , m ≤ 30000

不同复杂度的做法

  • 暴力 O(mn) O ( m n )
  • 矩阵快速幂 O(m3logn) O ( m 3 log ⁡ n )
  • 暴力多项式快速幂 O(m2logn) O ( m 2 log ⁡ n )
  • nlog n log 的多项式取模写快速幂 O(mlogmlogn) O ( m log ⁡ m log ⁡ n )

前两种暴力就不讲了,这里主要讲一下对“多项式取模为什么可以解线性递推”的理解。

线性递推与多项式取模

这篇博客写得不错,可以参考一下。

这里讲一种不用矩阵来理解的方法。我们直接从计算数列

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值