淺談單位根反演


Preface

我發現我現在學一個新算法總是把相關題目做完了才來寫233

單位根反演總的來說不是一個非常難的姿勢,但是確實解決某些問題的必要前提

它可以在\(O(k)\)的時間內求一個數列(或是生成函數)所有下標是\(k\)的倍數的點值和

以下的一些基礎姿勢例如單位根的性質及求法等以下不再贅述


Formula

先上單位根反演的公式:

\[[k|n]=\frac{1}{k}\sum_{i=0}^{k-1}\omega_k^{ni} \]

我們來考慮證明這個公式,分類討論:

\(k|n\),那么:

\[\frac{1}{k}\sum_{i=0}^{k-1}\omega_k^{ni}=\frac{1}{k}\sum_{i=0}^{k-1}(\omega_k^n)^i=\frac{1}{k}\sum_{i=0}^{k-1}\omega_k^0=1 \]

\(k\not| n\),那么根據等比數列求和有:

\[\frac{1}{k}\sum_{i=0}^{k-1}\omega_k^{ni}=\frac{1}{k}(\omega_k^0\cdot \frac{\omega_k^0-\omega_k^{kn}}{1-\omega_k^n}) \]

由於其分子為\(1-1=0\),因此該公式成立


Others

有些時候我們只知道\(k|n\)的點值和還不夠,比如說我們要知道下標\(\mod k=r\)的點值和

考慮通過函數的平移來解決問題,如果我們此時將該序列的生成函數乘上\(x^{-r}\)再套用上面的方法就可以得到答案了


Example

給幾道簡單點的例題練練手吧


Postscript

最近感悟到了生成函數之美,因此最近的做題方向也在想着數學題的方向靠近吧233


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM