学习笔记第五十三节:单位根反演

正题

      学过FFT的都知道单位根有一个这样的性质:[n|t]=\frac{\sum_{i=0}^{n-1}\omega_{n}^{it}}{n}

      那么我们就可以解决这样的东西:\sum_{i=0}^nC_{n}^ip^ia_{i\mod k}

      怎么解决呢?我们枚举一个j:\sum_{j=0}^{k-1}a_j\sum_{i=0}^nC_n^ip^i[k|i-j]

      我们构造一个多项式f(x)=\sum_{i=0}^nC_n^ip^ix^i

      你会发现一个奇妙的事情:

      \sum_{i=0}^{k-1}f(\omega_k^i) \\=\sum_{i=0}^{k-1}\sum_{j=0}^nC_n^jp^j\omega_k^{ij} \\=\sum_{j=0}^nC_n^jp^j\sum_{i=0}^{k-1}\omega_k^{ij} \\=\sum_{j=0}^nC_n^jp^j[k|j]

      如果我们要求\sum_{j=0}^nC_n^jp^j[k|j-q],把它往上推发现第一条式子变成了\sum_{i=0}^{k-1}f(\omega_k^i)\omega_k^{-iq}

      那么原来的式子就变成了\sum_{j=0}^{k-1}a_j\sum_{i=0}^{k-1}f(\omega_k^i)\omega_k^{-ij}

      好的这个式子就是k^2的,因为f可以快速算。

      当然你也可以把它看成自变量为\omega_k^{-j},然后直接快速插值。

      我们来想想一个式子:C_{i+j}^2-C_i^2-C_j^2=ij,展开即可证明

      然后就变成了\sum_{j=0}^{k-1}a_j\sum_{i=0}^{k-1}f(\omega_k^i)\omega_k^{-C_{i+j}^2+C_i^2+C_j^2}

      把后面那一项拆开就可以一遍NTT了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值