• 任意长度循环卷积&单位根反演 学习笔记


    今天听 myee" role="presentation" style="position: relative;">myee 嘴的,赶紧来补个学习笔记。

    PS:FFT 本质是长度为 2k" role="presentation" style="position: relative;">2k 的循环卷积。

    单位根反演

    反演本质:

    1ni=0n1ωnai=[n|a]" role="presentation" style="text-align: center; position: relative;">1ni=0n1ωnai=[n|a]

    证明:

    • 如果 n|i" role="presentation" style="position: relative;">n|i,那么显然可以将 a" role="presentation" style="position: relative;">a 拆为若干个 ωnn" role="presentation" style="position: relative;">ωnn,之后式子只剩下了 n" role="presentation" style="position: relative;">nωnn" role="presentation" style="position: relative;">ωnn,那么乘上 1n" role="presentation" style="position: relative;">1n 就是 1" role="presentation" style="position: relative;">1 啦。
    • 如果 n|a" role="presentation" style="position: relative;">n|a,容易发现 ωni" role="presentation" style="position: relative;">ωni 还是能够互相抵消,那么等于 0" role="presentation" style="position: relative;">0

    形式:

    gk=i=0n1fiωnikfk=1ni=0n1giωnik" role="presentation" style="text-align: center; position: relative;">gk=i=0n1fiωnikfk=1ni=0n1giωnik

    循环卷积

    定义 k" role="presentation" style="position: relative;">k 阶循环卷积为:

    hk=i+jk(modn)fi×gj" role="presentation" style="text-align: center; position: relative;">hk=i+jk(modn)fi×gj

    可以写出二阶循环卷积(不就是异或吗)的转移矩阵:

    fwt=[1111]ifwt=[1111]" role="presentation" style="text-align: center; position: relative;">fwt=[1111]ifwt=[1111]

    k" role="presentation" style="position: relative;">k 阶的转移矩阵是这样的:

    fwt=[ωk0ωk0ωk0ωk0ωk0ωk1ωk2ωkk1ωk0ωk2ωk4ωk2k2ωk0ωkk1ωk2k1ωkk22k+1]ifwt=[ωk0ωk0ωk0ωk0ωk0ωk1ωk2ωkk+1ωk0ωk2ωk4ωk2k+2ωk0ωkk+1ωk2k+1ωkk2+2k1]" role="presentation" style="position: relative;">fwt=[ωk0ωk0ωk0ωk0ωk0ωk1ωk2ωkk1ωk0ωk2ωk4ωk2k2ωk0ωkk1ωk2k1ωkk22k+1]ifwt=[ωk0ωk0ωk0ωk0ωk0ωk1ωk2ωkk+1ωk0ωk2ωk4ωk2k+2ωk0ωkk+1ωk2k+1ωkk2+2k1]

    这样可以 O(k2)" role="presentation" style="position: relative;">O(k2) 地完成 fwt 变换(但板题 任意模数 Chirp Z-Transform 需要用 FFT 优化加速),O(k)" role="presentation" style="position: relative;">O(k) 地点乘。

    PS:如果需要将对应系数相加,可以在 fwt 后直接相加减,因为这是个线性变换。

    咕咕咕

    P4191 [CTSC2010]性能优化

  • 相关阅读:
    性能调优MySQL 一
    【EMC专题】电磁辐射的危害
    DDD.实践思考随笔
    中文GPTS详尽教程,字节扣子Coze插件使用全输出
    IT运维之安全笔记
    应急产业新蓝海,瑞驰的智慧应急解决方案如何打样?
    java计算机毕业设计高校贫困生信息管理系统源码+mysql数据库+系统+lw文档+部署
    python之Matplotlib
    浅析Python 实现一个自动化翻译和替换的工具
    如何将vue项目打包在服务器上使用nginx运行,并使用反向代理解决跨域问题
  • 原文地址:https://blog.csdn.net/qq_53299575/article/details/126202920