| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 人工智能 -> FFT(快速傅里叶变换) -> 正文阅读 |
|
|
[人工智能]FFT(快速傅里叶变换) |
FFT1. FFT原理
A ( x ) = a 0 + a 1 x + a 2 x 2 + . . . a n ? 1 x n ? 1 A(x) = a_0 + a_1 x + a_2 x^2 + ... a_{n-1} x^{n-1} A(x)=a0?+a1?x+a2?x2+...an?1?xn?1
{ a 0 + a 1 x 1 + a 2 x 1 2 + . . . a n ? 1 x 1 n ? 1 = y 1 a 0 + a 1 x 2 + a 2 x 2 2 + . . . a n ? 1 x 2 n ? 1 = y 2 a 0 + a 1 x 3 + a 2 x 3 2 + . . . a n ? 1 x 3 n ? 1 = y 3 . . . a 0 + a 1 x n + a 2 x n 2 + . . . a n ? 1 x n n ? 1 = y n \begin{cases} a_0 + a_1 x_1 + a_2 x_1^2 + ... a_{n-1} x_1^{n-1} = y_1 \\ a_0 + a_1 x_2 + a_2 x_2^2 + ... a_{n-1} x_2^{n-1} = y_2 \\ a_0 + a_1 x_3 + a_2 x_3^2 + ... a_{n-1} x_3^{n-1} = y_3 \\ ... \\ a_0 + a_1 x_n + a_2 x_n^2 + ... a_{n-1} x_n^{n-1} = y_n \\ \end{cases} ????????????????a0?+a1?x1?+a2?x12?+...an?1?x1n?1?=y1?a0?+a1?x2?+a2?x22?+...an?1?x2n?1?=y2?a0?+a1?x3?+a2?x32?+...an?1?x3n?1?=y3?...a0?+a1?xn?+a2?xn2?+...an?1?xnn?1?=yn??
∣ 1 x 1 x 1 2 . . . x 1 n ? 1 1 x 2 x 2 2 . . . x 2 n ? 1 1 x 3 x 3 2 . . . x 3 n ? 1 . . . 1 x n x n 2 . . . x n n ? 1 ∣ = Π 1 ≤ j < i ≤ n ( x i ? x j ) ( ) \begin{vmatrix} 1 & x_1 & x_1 ^ 2 & ... & x_1 ^ {n-1} \\ 1 & x_2 & x_2 ^ 2 & ... & x_2 ^ {n-1} \\ 1 & x_3 & x_3 ^ 2 & ... & x_3 ^ {n-1} \\ &&... \\ 1 & x_n & x_n ^ 2 & ... & x_n ^ {n-1} \end{vmatrix} \tag{} = \Pi _ {1 \le j < i \le n} (x_i - x_j) ∣∣∣∣∣∣∣∣∣∣?1111?x1?x2?x3?xn??x12?x22?x32?...xn2??............?x1n?1?x2n?1?x3n?1?xnn?1??∣∣∣∣∣∣∣∣∣∣?=Π1≤j<i≤n?(xi??xj?)()
B ( x ) = b 0 + b 1 x + b 2 x 2 + . . . b m ? 1 x m ? 1 B(x) = b_0 + b_1 x + b_2 x^2 + ... b_{m-1} x^{m-1} B(x)=b0?+b1?x+b2?x2+...bm?1?xm?1
( x 1 , A ( x 1 ) ) 、 ( x 2 , A ( x 2 ) ) 、 . . . . . . 、 ( x n + m ? 1 , A ( x n + m ? 1 ) ) ( x 1 , B ( x 1 ) ) 、 ( x 2 , B ( x 2 ) ) 、 . . . . . . 、 ( x n + m ? 1 , B ( x n + m ? 1 ) ) (x_1, A(x_1))、(x_2, A(x_2))、......、(x_{n+m-1}, A(x_{n+m-1})) \\ (x_1, B(x_1))、(x_2, B(x_2))、......、(x_{n+m-1}, B(x_{n+m-1})) (x1?,A(x1?))、(x2?,A(x2?))、......、(xn+m?1?,A(xn+m?1?))(x1?,B(x1?))、(x2?,B(x2?))、......、(xn+m?1?,B(xn+m?1?))
( x 1 , C ( x 1 ) ) 、 ( x 2 , C ( x 2 ) ) 、 . . . . . . 、 ( x n + m ? 1 , C ( x n + m ? 1 ) ) = ( x 1 , A ( x 1 ) × B ( x 1 ) ) 、 ( x 2 , A ( x 2 ) × B ( x 2 ) ) 、 . . . . . . 、 ( x n + m ? 1 , A ( x n + m ? 1 ) × B ( x n + m ? 1 ) ) (x_1, C(x_1))、(x_2, C(x_2))、......、(x_{n+m-1}, C(x_{n+m-1})) \\ = (x_1, A(x_1) \times B(x_1))、(x_2, A(x_2) \times B(x_2))、......、(x_{n+m-1}, A(x_{n+m-1}) \times B(x_{n+m-1})) (x1?,C(x1?))、(x2?,C(x2?))、......、(xn+m?1?,C(xn+m?1?))=(x1?,A(x1?)×B(x1?))、(x2?,A(x2?)×B(x2?))、......、(xn+m?1?,A(xn+m?1?)×B(xn+m?1?))
A ( x ) = a 0 + a 1 x + a 2 x 2 + . . . a n ? 1 x n ? 1 = ( a 0 + a 2 x 2 + . . . + a n ? 2 x n ? 2 ) + ( a 1 + a 3 x 3 + . . . + a n ? 1 x n ? 1 ) A(x) = a_0 + a_1 x + a_2 x^2 + ... a_{n-1} x^{n-1} \\ = \big(a_0 + a_2 x^2 + ...+ a_{n-2} x^{n-2} \big) + \big(a_1 + a_3 x^3 + ...+ a_{n-1} x^{n-1} \big) A(x)=a0?+a1?x+a2?x2+...an?1?xn?1=(a0?+a2?x2+...+an?2?xn?2)+(a1?+a3?x3+...+an?1?xn?1)
A 1 ( x ) = a 0 + a 2 x + a 4 x 2 + . . . + a n ? 2 x n 2 ? 1 A 2 ( x ) = a 1 + a 3 x + a 5 x 2 + . . . + a n ? 1 x n 2 ? 1 A_1(x) = a_0 + a_2 x + a_4 x^2 + ...+ a_{n-2} x^{\frac{n}{2} - 1} \\ A_2(x) = a_1 + a_3 x + a_5 x^2 + ...+ a_{n-1} x^{\frac{n}{2} - 1} A1?(x)=a0?+a2?x+a4?x2+...+an?2?x2n??1A2?(x)=a1?+a3?x+a5?x2+...+an?1?x2n??1
A ( ω n k ) = A 1 ( ω n 2 k ) + ω n k A 2 ( ω n 2 k ) = A 1 ( ω n 2 k ) + ω n k A 2 ( ω n 2 k ) A ( ω n k + n 2 ) = A 1 ( ω n 2 k + n ) + ω n k + n 2 A 2 ( ω n 2 k + n ) = A 1 ( ω n 2 k ) ? ω n k A 2 ( ω n 2 k ) A(\omega_n^k) = A_1(\omega_n^{2k}) + \omega_n^k A_2(\omega_n^{2k}) = A_1(\omega_{\frac{n}{2}}^k) + \omega_n^k A_2(\omega_{\frac{n}{2}}^k) \\\\ A(\omega_n^{k+\frac{n}{2}}) = A_1(\omega_n^{2k+n}) + \omega_n^{k+\frac{n}{2}} A_2(\omega_n^{2k+n}) = A_1(\omega_{\frac{n}{2}}^k) - \omega_n^k A_2(\omega_{\frac{n}{2}}^k) A(ωnk?)=A1?(ωn2k?)+ωnk?A2?(ωn2k?)=A1?(ω2n?k?)+ωnk?A2?(ω2n?k?)A(ωnk+2n??)=A1?(ωn2k+n?)+ωnk+2n??A2?(ωn2k+n?)=A1?(ω2n?k?)?ωnk?A2?(ω2n?k?)
a k = 1 n ∑ i = 0 n ? 1 y i × ( ω n ? k ) i a_k = \frac{1}{n} \sum _{i=0}^{n-1} y_i \times (\omega_n^{-k}) ^ i ak?=n1?i=0∑n?1?yi?×(ωn?k?)i
T ( x ) = y 0 + y 1 x + y 2 x 2 + . . . + y n ? 1 x n ? 1 T(x) = y_0 + y_1 x + y_2 x^2 + ... + y_{n-1} x^{n-1} T(x)=y0?+y1?x+y2?x2+...+yn?1?xn?1
1 n ∑ i = 0 n ? 1 y i × ( ω n ? k ) i = 1 n ∑ i = 0 n ? 1 ( ( ∑ j = 0 n ? 1 a j ( ω n i ) j ) × ( ω n ? k ) i ) = 1 n ∑ i = 0 n ? 1 ( ( ∑ j = 0 n ? 1 a j ( ω n j ) i × ( ω n ? k ) i ) ) = 1 n ∑ i = 0 n ? 1 ( ∑ j = 0 n ? 1 a j ( ω n j ? k ) i ) = 1 n ∑ j = 0 n ? 1 a j ( ∑ i = 0 n ? 1 ( ω n j ? k ) i ) \frac{1}{n} \sum _{i=0}^{n-1} y_i \times (\omega_n^{-k}) ^ i \\\\ = \frac{1}{n} \sum _{i=0}^{n-1} \Big( \big( \sum_{j=0}^{n-1} a_j (\omega_n^i)^j \big) \times (\omega_n^{-k}) ^ i \Big) \\\\ = \frac{1}{n} \sum _{i=0}^{n-1} \Big( \big( \sum_{j=0}^{n-1} a_j (\omega_n^j)^i \times (\omega_n^{-k}) ^ i \big) \Big) \\\\ = \frac{1}{n} \sum _{i=0}^{n-1} \Big( \sum_{j=0}^{n-1} a_j (\omega_n^{j-k})^i \Big) \\\\ = \frac{1}{n} \sum _{j=0}^{n-1} a_j \Big( \sum_{i=0}^{n-1} (\omega_n^{j-k})^i \Big) n1?i=0∑n?1?yi?×(ωn?k?)i=n1?i=0∑n?1?((j=0∑n?1?aj?(ωni?)j)×(ωn?k?)i)=n1?i=0∑n?1?((j=0∑n?1?aj?(ωnj?)i×(ωn?k?)i))=n1?i=0∑n?1?(j=0∑n?1?aj?(ωnj?k?)i)=n1?j=0∑n?1?aj?(i=0∑n?1?(ωnj?k?)i)
S ( ω n k ) = 1 + ω n k + ω n 2 k + . . . + ω n ( n ? 1 ) k ( 1 ) ω n k S ( ω n k ) = ω n k + ω n 2 k + . . . + ω n ( n ? 1 ) k + ω n n k = ω n k + ω n 2 k + . . . + ω n ( n ? 1 ) k + 1 ( 2 ) S(\omega_n^{k}) = 1 + \omega_n^{k} + \omega_n^{2k} + ... + \omega_n^{(n-1)k} \quad (1) \\\\ \omega_n^{k} S(\omega_n^{k}) = \omega_n^{k} + \omega_n^{2k} + ... + \omega_n^{(n-1)k} + \omega_n^{nk} \\\\ = \omega_n^{k} + \omega_n^{2k} + ... + \omega_n^{(n-1)k} + 1 \quad (2) S(ωnk?)=1+ωnk?+ωn2k?+...+ωn(n?1)k?(1)ωnk?S(ωnk?)=ωnk?+ωn2k?+...+ωn(n?1)k?+ωnnk?=ωnk?+ωn2k?+...+ωn(n?1)k?+1(2)
1 n ∑ j = 0 n ? 1 a k ( ∑ i = 0 n ? 1 ( ω n j ? k ) i ) = 1 n ∑ j = 0 n ? 1 a k × n = a k \frac{1}{n} \sum _{j=0}^{n-1} a_k \Big( \sum_{i=0}^{n-1} (\omega_n^{j-k})^i \Big) \\\\ = \frac{1}{n} \sum _{j=0}^{n-1} a_k \times n = a_k n1?j=0∑n?1?ak?(i=0∑n?1?(ωnj?k?)i)=n1?j=0∑n?1?ak?×n=ak?
2. AcWing上的FFT题目AcWing 3122. 多项式乘法
AcWing 3123. 高精度乘法II
|
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2026年2日历 | -2026/2/3 16:53:24- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |