首页 > 其他分享 >反演小记

反演小记

时间:2023-08-24 20:13:45浏览次数:32  
标签:frac sum 反演 pmatrix 小记 omega vdots

反演

反演,可以理解为两个事物通过某种关系的互相转化。

基本推论

设 \(F,G\),满足 \(F(n) = \sum V[n,i]G(i)\),其中 \(V\) 为矩阵,将 \(F,G\) 看成列向量,可以写做 \(F = V * G\),那么我们可以容易推出 \(G = V^{-1} * F\),这就是反演的过程,而一些特殊的反演即是利用了 \(V\)和\(V^{-1}\) 的特殊性。

也就是说,证明 \(A,B\) 互为反演关系,即证明 \(A * B = I\)。

单位根反演

设 \(\omega\) 为 \(n\)次单位根,则有

\[[a \equiv 0 \pmod n] = \frac{1}{n}\sum_{i = 0}^{n-1} \omega^{ia} \]

证明
  1. 当 \(a = 0 \pmod n\) 时

    \[\frac{1}{n}\sum_{i = 0}^{n-1} \omega^{ia} = \frac{1}{n} \sum_{i = 0}^{n-1} \omega^{0} = 1 \]

  2. 当 \(a \neq 0 \pmod n\) 时
    使用等比数列求和化简原式

    \[\frac{1}{n}\sum_{i = 0}^{n-1} \omega^{ia} = \frac{1}{n} * \frac{\omega^{na} - 1}{\omega^a - 1} \]

    其中 \(\omega^{na} - 1 = 0\),而 \(\omega^a - 1 \neq 0\),所以原式值为 \(0\)

从反演的视角看 \(\text{FFT}\)

设多项式 \(F,G\),我们要求 \(H = F * G\)(循环卷积),可以易得

\[h_i = \sum_{x = 0}^n\sum_{y = 0}^n [x + y \equiv i \pmod n]f_xg_y \]

\[h_i = \sum_{x = 0}^n\sum_{y = 0}^n [x + y - i \equiv 0 \pmod n]f_xg_y \]

单位根反演一下得

\[h_i = \sum_{x = 0}^n\sum_{y = 0}^n \frac{1}{n}\sum_{k = 0}^{n -1}\omega^{(x + y - i)k}f_xg_y \]

\[h_i = \frac{1}{n}\sum_{k = 0}^{n -1}\omega^{-ik}(\sum_{x=0}^nf_x\omega^{kx})(\sum_{y=0}^ng_y\omega^{ky}) \]

\[h_i = \frac{1}{n}\sum_{k = 0}^{n -1}\omega^{-ik}F(\omega^k)G(\omega^k) \]

这样我们就可以求出 \(F,G\) 在 \(\omega^0,...,w^{n-1}\) 上的点值来算出来 \(h_i\),把求点值的过程写成矩阵

\[\begin{pmatrix} F(1) \\ F(\omega) \\ F(\omega^2) \\ \vdots \\ F(\omega^{n-1}) \end{pmatrix} = \begin{pmatrix} 1 & 1 & 1 & \cdots & 1 \\ 1 & \omega & \omega^2 & \cdots & \omega^{n-1} \\ 1 & \omega^2 & \omega^{2 \times 2} & \cdots & \omega^{2 \times (n-1)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & \omega^{n - 1} & \omega^{(n - 1) \times 2} & \cdots & \omega^{(n-1) \times (n - 1)} \end{pmatrix} \times \begin{pmatrix} f_0\\ f_1\\ f_2\\ \vdots\\ f_{n-1} \end{pmatrix}\]

设关系矩阵为 \(A\),其存在逆 \(A^{-1}_{i,j} = \frac{1}{n}\omega^{-ij}\),我们惊奇地发现

\[\begin{pmatrix} h_0 \\ h_1 \\ h_2 \\ \vdots \\ h_{n-1} \end{pmatrix} =A^{-1}\times \begin{pmatrix} F(1)G(1)\\ F(\omega)G(\omega)\\ F(\omega^2)G(\omega^2)\\ \vdots\\ F(\omega^{n-1})G(\omega^{n-1}) \end{pmatrix}\]

所以 \(H(\omega^k) = F(\omega^k)G(\omega^k)\),而 \(\text{FFT}\) 的本质就是加速 \(A * F\) 和 \(A^{-1} * H\) 的过程。

\(\text{K - FWT}\)

这可以推广到高维,也就是 \(K\)进制 \(\text{FWT}\),这里这论述异或卷积。
设 \(x, y\) 为两个列向量(\(m\)维),定义其加法为

\[\begin{pmatrix} x_0\\ x_1\\ x_2\\ \vdots\\ x_{m-1} \end{pmatrix} + \begin{pmatrix} y_0\\ y_1\\ y_2\\ \vdots\\ y_{m-1} \end{pmatrix} = \begin{pmatrix} (x_0 + y_0) \bmod K\\ (x_1 + y_1) \bmod K\\ (x_2 + y_2) \bmod K\\ \vdots\\ (x_{m-1} + y_{m-1}) \bmod K\\ \end{pmatrix}\]

其卷积为

\[h_i = \sum_{x = 0}^n\sum_{y = 0}^n [x + y = i]f_xg_y \]

其中 \(i,x,y\) 均为列向量,代表一个状态。
相似的有结论

\[F(\omega^{k}) = \sum_x f_x\omega^{x \cdot k} \]

其中 \(x \cdot k\) 为向量的内积。
可以写出关系矩阵 \(A_{i,j} = \omega^{i \cdot j}\),\(A^{-1}_{i,j} = \frac{1}{n}\omega^{-i\cdot j}\)
\(DFT\) 和 \(IDFT\) 的过程就是 \(A * F\) 和 \(A^{-1} * F\) 的过程。

高维 DFT 代码
void DFT(int *f, int len) {
    for (int l = 1; l < len; l *= K)
        for (int i = 0; i < len; i += l * K)
            for (int j = i; j < i + l; j++) {
                for (int x = 0; x < K; x++) b[x] = 0;
                for (int x = 0; x < K; x++)
                for (int y = 0; y < K; y++)
                    (b[x] += (LL)w[x * y % K] * f[j + y * l] % P) %= P;
                for (int x = 0; x < K; x++) f[j + x * l] = b[x]; 
            }
}

标签:frac,sum,反演,pmatrix,小记,omega,vdots
From: https://www.cnblogs.com/nibabadeboke/p/17655046.html

相关文章

  • mysql基操小记
    MYSQLA.概述1.关系型数据库​ MySQL是一个关系型数据库管理系统,由瑞典[MySQLAB](https://baike.baidu.com/item/MySQLAB/2620844?fromModule=lemma_inlink)公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(Re......
  • 8.23 模拟赛小记
    A.还是单调队列优化dp的板子,类似昨天C。B.洛谷原题指路:P1758[NOI2009]管道取珠感觉是比较有难度的dp。题目概述:给你两个只有两种字符组成的序列,每次从一个序列末尾取走一位放入新序列的末尾,最后得到k种不同的新序列形态。每种形态有a[i]种不同的操作,求\(\sum_{i......
  • 【算法学习笔记】max-min容斥 极值反演
    max-min容斥(极值反演)即为下式;\[\begin{equation}\max\{S\}=\sum_{T\subseteqS}(-1)^{|T|+1}\min\{T\}\label{aa}\end{equation}\]\[\begin{equation}\min\{S\}=\sum_{T\subseteqS}(-1)^{|T|+1}\max\{T\}\label{ab}\end{equation}\]证明:证明\(\ref......
  • 【小记】拉格朗日插值
    拉格朗日插值是知道\(n\)次多项式在\(n+1\)个点的点值,快速求出\(f(x')\)的算法结论拉格朗日插值本质上就是该式子,首先我们知道的点值为当\(x=x_i\)时\(f(x)=y_i\)\[f(x)=\sum_{i=0}^{n}y_i\prod_{j\nei}\frac{x-x_j}{x_i-x_j}\]推导首先假设我们考虑第\(i\)个点值。那么我......
  • 日常工具使用小记录 (daily tool usage snippet)
     1.如何上传本地文件至服务器(howtouploadlocalfilestoserver)1.1启动本地server假设本地目录C:/your_home/tmp,该目录下有文件test.txt cdc:/your_home/tmppython-mSimpleHTTPServer8081//新开另一个命令窗口openanothercmdtabifconfig//......
  • 「Log」2023.8.21 小记
    序幕七点到校,管理整理博客。然后开始写博客,SAM的。学长开始讲题,2-SAT,还算好理解,写完博客过了下板子题。\(\color{royalblue}{P4782【模板】2-SAT问题}\)板子。\(\text{Link}\)间幕\(1\)吃饭,学长开始讲LCT。和SAM同样抽象的东西。好消息是代码跟SAM一样较为好写......
  • 8.21 模拟赛小记
    A.吃饭路上也要锻炼,原P3505[POI2010]TEL-Teleportation咱现在思路通了,代码实现可能得鸽一鸽。两个强强的博客:https://www.cnblogs.com/stoorz/p/12182770.html,https://www.cnblogs.com/reywmp/p/14014611.html。是很难的思维题,涉及乘法原理和图论,用到了分层思想。统计答案时......
  • 「学习笔记」莫比乌斯反演
    「学习笔记」莫比乌斯反演点击查看目录目录「学习笔记」莫比乌斯反演前置知识整除分块积性函数线性筛任意积性函数莫比乌斯反演莫比乌斯函数莫比乌斯反演公式例题[HAOI2011]ProblembYY的GCD[SDOI2014]数表DZYLovesMath[SDOI2015]约数个数和[SDOI2017]数字表格于神之......
  • FFT 小记
    目录复数单位复数根PolyFFTEnd参考资料由于懒,所以没图。写得时候有点抽风,可能有typo,望指出。复数复数表述为\(a+b\timesi\),其中\(i\)是复数单位\(\sqrt{-1}\),同时由此可得\(i^2=-1\)。称\(a\)是实部(下文简称real),\(b\)是虚部(简称imag)。对于一个实数,其real等于其......
  • 小记
    1.路由跳转及传参import{withRouter,RouteComponentProps}from'react-router';classReplenishmentOrderextendsComponent<TProps&RouteComponentProps,TState>{constructor(props:RouteComponentProps){super(props);......