文章目录
未完成版,是看了一些教学视频的笔记
这个是不涉及很多数学知识的版本
FFT
yc这里描述的不是特别清楚,我来具体一下
就是,我已经分别知道了A和B两个多项式的在n个相同位置的值,根据C = A * B可以得到C的点表示,那么,下一步就是,我应该怎么把系数表示转成点表示和点表示再转换成系数表示
方法就是,想一下有没有一种点,当你知道一个点的函数值的时候,另一个点也立刻知道
那就是判断函数的奇偶性,然后进行添加符号,这样相反数坐标的点和值都知道了
既然如此,我们先把函数中的奇数次方项拿出来,然后把奇函数的x提出来一个
这样使得我们的点数计算少了一半,同时,我们还可以把
x
2
x^{2}
x2用换元法换一下,这样阶数也少了
这样就会得到两个新的函数,这时候我们再拆,按照上述流程再走一遍,类似于递归算法
这里你可能会有疑惑,因为我用换元法之后,应该是取值大于0,不能取相反数了,但是别急,这里就扯到后面的内容了
接下来就是取值问题
我们把这些点取成复数,使得他们平方之后还是相反数!
以一个三次方程举例,接下来看一看能不能推广
首先介绍一些东西,1的n次方根平均的分布在整个单位圆上,任意两点夹角是2pi/n,这些点,最简单的表示方法就说用欧拉公式写作复指数
对里面的点进行平方之后,他们也是正负配对的,也就是两个相反数的值,平方之后,会落在新的单位元同一点,一直到最后,只有1,其实这就是复数域上的单位根
这里我们想一下,既然是刚刚说了对
x
2
x^2
x2进行了换元,那这里就变成了两个复数相乘,于此同时,他还代表角度,其实就是两个角度相加,也就是
w
n
k
w_{n}^{k}
wnk平方就是
w
n
2
k
w_{n}^{2k}
wn2k,然后利用上面的性质
接着要看一下逆变换
实际上就是这样,求逆
可见,就改了一个w的值