• FFT


    http://blog.csdn.net/iamzky/article/details/22712347

    一般地,x的n个单位根可以表示为:,其中:k=0,1,2,..,n-1。

    单位的 n次根有n个:
    wn可以看做是复平面上x轴正方向绕逆时针方向旋转2pi/n的复数.
     wnwnwnwn   22
    大概是从[0,2*pi]逆时针转过来,分别为wn^0...wn^(n-1)。wn^0在x轴上,xn角度为2*pi/n                                                            
     
    性质一
    n次单位根的模为1,即|εk|=1
    性质二
    两个n次单位根εj与εk 的乘积还是一个n次单位根,且εjεkj+k
     
    推论:
    (n=1时,该式子不成立)
    性质三
    w[n]^2=w[n/2]
    w[n]^m=-w[n]^(m+n/2)
    性质四
    全部单位根将复平面单位圆n等分。 //多边形的重心在原点
     
     
     
     
    多项式的点值表示可以唯一确定一个多项式(得到的方程组有唯一解)
    复数相乘:模长相乘,幅角相加。
     
    a的多项式乘b次的多项式得到的多项式的次数界应该是a+b-1的。因此我们将向量a,b的长度变成a+b-1,高位补0。这样点值就有a+b-1个值。
    ////////////////
    注意空间要开够2*(n+m)
     
    由于需要使用复数,
    #include<complex>
    ...
    typedef complex<double> E;
    E a(3.5,6.3);
    a+=3.6;  printf("%lf %lf",a.real(),a.imag());
     
    单位根的向量在复平面上是如此优美。
     
    IDFT后每个复数虚部一定为0。
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    迭代版本FFT:
    观察一波性质,发现只需位反转即可得到新串。二进制加1的复杂度是严格O(n)。n+n/2+n/4+n/8+...+n/n=2n-1。
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    NTT :其实和FFT类似,只不过是用g^((p-1)/n) (mod p)代替wn。p=k*2^r+1。其实有一个前提2^r>n,但是当p=998244353时,n本来也不能弄到很大。
    2281701377=17227+1

    2281701377=17*2^27+1是一个挺好的数,平方刚好不会爆 long long

    1004535809=479*2^21+1 加起来刚好不会爆int也不错

    还有就是998244353=119×2^23+1
     
    原根 http://blog.csdn.net/acdreamers/article/details/8883285
    1.素数一定有原根
    2.阶的性质
    3.[1,p-1]内i=p-1是唯一一个使得g^i==1 (mod p)的根。
    4.求模素数p原根的方法:对p-1素因子分解。枚举g,若恒有g^((p-1)/pi)!=1 (mod p),则g是p的原根???
     
    而剩下的问题就是为什么可以用原根代替单位根了
     
    令g=原根^((p-1)/n)。我们还要证明g^0,g^1...g^(n-1)互不相同

    模数任意的解决方案   还不会?

     问题就是为什么
    1.分治fft:结合cdq的思想,求Fi=simga(0<j<i) Fi-j*Aj   hdu5730
  • 相关阅读:
    软工网络15个人阅读作业1
    JAVA课程设计-猜数游戏 201521123017
    201521123017 《Java程序设计》第14周学习总结
    201521123017 《Java程序设计》第13周学习总结
    201521123017 《Java程序设计》第12周学习总结
    个人作业5---软工个人总结
    网络软工个人作业4——Alpha阶段个人总结
    软件工程网络15个人作业3(201521123028 李家俊)
    软工网络15结对编程练习
    软件工程网络15个人阅读作业2(201521123028李家俊)
  • 原文地址:https://www.cnblogs.com/supy/p/7903636.html
Copyright © 2020-2023  润新知