当前位置: 首页 > news >正文

自己做网站教程友情链接交换平台免费

自己做网站教程,友情链接交换平台免费,企业建站做网站,英文建站软件深入理解NTT 中国剩余定理 (CRT):环 R R R 上的有限个理想 { I i } \{I_i\} {Ii​},存在同态映射 σ : R / ⋂ i I i → ∏ i R / I i \sigma:R/\bigcap_i I_i \to \prod_i R/I_i σ:R/i⋂​Ii​→i∏​R/Ii​ 如果它们两两互素 I i I j R I_iI_jR…

深入理解NTT

  • 中国剩余定理 (CRT):环 R R R 上的有限个理想 { I i } \{I_i\} {Ii},存在同态映射
    σ : R / ⋂ i I i → ∏ i R / I i \sigma:R/\bigcap_i I_i \to \prod_i R/I_i σ:R/iIiiR/Ii

    如果它们两两互素 I i + I j = R I_i+I_j=R Ii+Ij=R,那么 σ \sigma σ 是环同构

  • 在多项式环上,如果 f , g ∈ R [ x ] f,g \in R[x] f,gR[x] g c d ( f , g ) = 1 gcd(f,g)=1 gcd(f,g)=1,那么存在环同构
    ϕ : R [ x ] / ( f ( x ) g ( x ) ) ≅ R [ x ] / ( f ( x ) ) × R [ x ] / ( g ( x ) ) ϕ ( h ) = ( h m o d f , h m o d g ) \begin{aligned} \phi:R[x]/(f(x)g(x)) &\cong R[x]/(f(x)) \times R[x]/(g(x))\\ \phi(h) &= (h \mod{f},\, h \mod{g}) \end{aligned} ϕ:R[x]/(f(x)g(x))ϕ(h)R[x]/(f(x))×R[x]/(g(x))=(hmodf,hmodg)

  • Z q [ x ] / ( x n − 1 ) Z_q[x]/(x^n-1) Zq[x]/(xn1),其中 n = 2 k , n ∣ q − 1 n=2^k,\,n \mid q-1 n=2k,nq1,取 ξ n ∈ Z q \xi_n \in Z_q ξnZq

  • 容易验证如下分解等式
    x n − 1 = ( x n 2 − ξ n 0 ) ( x n 2 − ξ n n 2 ) x n 2 − ξ n 0 = ( x n 4 − ξ n 0 ) ( x n 4 − ξ n 2 n 4 ) x n 2 − ξ n n 2 = ( x n 4 − ξ n n 4 ) ( x n 4 − ξ n 3 n 4 ) ⋯ \begin{aligned} x^{n}-1 &= (x^\frac{n}{2}-\xi_n^0)(x^\frac{n}{2}-\xi_n^\frac{n}{2})\\ x^\frac{n}{2}-\xi_n^0 &= (x^\frac{n}{4}-\xi_n^0)(x^\frac{n}{4}-\xi_n^\frac{2n}{4})\\ x^\frac{n}{2}-\xi_n^\frac{n}{2} &= (x^\frac{n}{4}-\xi_n^\frac{n}{4})(x^\frac{n}{4}-\xi_n^\frac{3n}{4})\\ \cdots\\ \end{aligned} xn1x2nξn0x2nξn2n=(x2nξn0)(x2nξn2n)=(x4nξn0)(x4nξn42n)=(x4nξn4n)(x4nξn43n)
    分解过程,如图:

    j = 0 j=0 j=0 j = 1 j=1 j=1 j = 2 j=2 j=2
    x n 4 − ξ n 0 x^\frac{n}{4}-\xi_n^0 x4nξn0 ξ n 0 = ( ξ n n 4 ) b r v 2 ( 0 ) \xi_n^0= (\xi_n^\frac{n}{4})^{brv_2(0)} ξn0=(ξn4n)brv2(0)
    x n 2 − ξ n 0 x^\frac{n}{2}-\xi_n^0 x2nξn0 ξ n 0 = ( ξ n n 2 ) b r v 1 ( 0 ) \xi_n^0 = (\xi_n^\frac{n}{2})^{brv_1(0)} ξn0=(ξn2n)brv1(0)
    x n 4 − ξ n 2 n 4 x^\frac{n}{4}-\xi_n^\frac{2n}{4} x4nξn42n ξ n 2 n 4 = ( ξ n n 4 ) b r v 2 ( 1 ) \xi_n^\frac{2n}{4}= (\xi_n^\frac{n}{4})^{brv_2(1)} ξn42n=(ξn4n)brv2(1)
    x n − 1 = x n − ξ n 0 x^n-1 = x^n-\xi_n^0 xn1=xnξn0
    x n 4 − ξ n n 4 x^\frac{n}{4}-\xi_n^\frac{n}{4} x4nξn4n ξ n n 4 = ( ξ n n 4 ) b r v 2 ( 2 ) \xi_n^\frac{n}{4}= (\xi_n^\frac{n}{4})^{brv_2(2)} ξn4n=(ξn4n)brv2(2)
    x n 2 − ξ n n 2 x^\frac{n}{2}-\xi_n^\frac{n}{2} x2nξn2n ξ n n 2 = ( ξ n n 2 ) b r v 1 ( 1 ) \xi_n^\frac{n}{2}= (\xi_n^\frac{n}{2})^{brv_1(1)} ξn2n=(ξn2n)brv1(1)
    x n 4 − ξ n 3 n 4 x^\frac{n}{4}-\xi_n^\frac{3n}{4} x4nξn43n ξ n 3 n 4 = ( ξ n n 4 ) b r v 2 ( 3 ) \xi_n^\frac{3n}{4}= (\xi_n^\frac{n}{4})^{brv_2(3)} ξn43n=(ξn4n)brv2(3)
  • f ( x ) ∈ Z q [ x ] / ( x n − 1 ) f(x) \in Z_q[x]/(x^n-1) f(x)Zq[x]/(xn1),简记 f b 1 ⋯ b j ( x ) : = f ( x ) m o d x n 2 j − ( ξ n n 2 j ) b r v j ( b 1 ⋯ b j ) f_{b_1 \cdots b_j}(x) := f(x) \mod x^\frac{n}{2^j} - (\xi_n^\frac{n}{2^j})^{brv_j(b_1 \cdots b_j)} fb1bj(x):=f(x)modx2jn(ξn2jn)brvj(b1bj),其中 b 1 ⋯ b j b_1 \cdots b_j b1bj是分解路径。

    对应的位置关系,如图:

    j = 0 j=0 j=0 j = 1 j=1 j=1 j = 2 j=2 j=2
    f 00 = f ( x ) m o d x n 4 − ξ n 0 f_{00} = f(x) \mod x^\frac{n}{4}-\xi_n^0 f00=f(x)modx4nξn0
    f 0 = f ( x ) m o d x n 2 − ξ n 0 f_{0} = f(x) \mod x^\frac{n}{2}-\xi_n^0 f0=f(x)modx2nξn0
    f 01 = f ( x ) m o d x n 4 − ξ n 2 n 4 f_{01} = f(x) \mod x^\frac{n}{4}-\xi_n^\frac{2n}{4} f01=f(x)modx4nξn42n
    f = f ( x ) m o d x n − 1 f = f(x) \mod x^n-1 f=f(x)modxn1
    f 10 = f ( x ) m o d x n 4 − ξ n n 4 f_{10} = f(x) \mod x^\frac{n}{4}-\xi_n^\frac{n}{4} f10=f(x)modx4nξn4n
    f 1 = f ( x ) m o d x n 2 − ξ n n 2 f_{1} = f(x) \mod x^\frac{n}{2}-\xi_n^\frac{n}{2} f1=f(x)modx2nξn2n
    f 11 = f ( x ) m o d x n 4 − ξ n 3 n 4 f_{11} = f(x) \mod x^\frac{n}{4}-\xi_n^\frac{3n}{4} f11=f(x)modx4nξn43n
  • 令阵列 f [ i ] f[i] f[i]是多项式 f ( x ) f(x) f(x)的系数向量,即
    f ( x ) = ∑ i = 0 n − 1 f [ i ] x i m o d x n − 1 f(x) = \sum_{i=0}^{n-1} f[i] x^i \mod x^n-1 f(x)=i=0n1f[i]ximodxn1
    模掉 x n 2 − a x^\frac{n}{2} - a x2na,为
    f ( x ) = ∑ i = 0 n 2 − 1 ( f [ i ] + a f [ i + n 2 ] ) x i m o d x n 2 − a f(x) = \sum_{i=0}^{\frac{n}{2}-1} (f[i] + af[i + \frac{n}{2}]) x^i \mod x^\frac{n}{2} - a f(x)=i=02n1(f[i]+af[i+2n])ximodx2na

  • 令阵列 f 0 [ i ] f_{0}[i] f0[i]是多项式 f 0 ( x ) f_{0}(x) f0(x)的系数向量,阵列 f 1 [ i ] f_{1}[i] f1[i]是多项式 f 1 ( x ) f_{1}(x) f1(x)的系数向量,那么
    f 0 ( x ) = ∑ i = 0 n 2 − 1 ( f [ i ] + ξ n 0 f [ i + n 2 ] ) x i m o d x n 2 − ξ n 0 f 1 ( x ) = ∑ i = 0 n 2 − 1 ( f [ i ] + ξ n n 2 f [ i + n 2 ] ) x i m o d x n 2 − ξ n n 2 \begin{aligned} f_0(x) = \sum_{i=0}^{\frac{n}{2}-1} (f[i] + \xi_n^0 f[i + \frac{n}{2}]) x^i \mod x^\frac{n}{2} - \xi_n^0\\ f_1(x) = \sum_{i=0}^{\frac{n}{2}-1} (f[i] + \xi_n^\frac{n}{2} f[i + \frac{n}{2}]) x^i \mod x^\frac{n}{2} - \xi_n^\frac{n}{2}\\ \end{aligned} f0(x)=i=02n1(f[i]+ξn0f[i+2n])ximodx2nξn0f1(x)=i=02n1(f[i]+ξn2nf[i+2n])ximodx2nξn2n
    其中 ξ n n 2 = − ξ n 0 \xi_n^\frac{n}{2} = -\xi_n^0 ξn2n=ξn0;后续的分解类似。

  • 使用CT蝴蝶
    f b 1 ⋯ b j − 1 [ i ] → → → → → ⊕ → f b 1 ⋯ b j − 1 ∣ 0 [ i ] ↘ ↗ ⋅ ↗ ↘ f b 1 ⋯ b j − 1 [ i + n 2 ] → ⊗ → → → ⊖ → f b 1 ⋯ b j − 1 ∣ 1 [ i ] ↑ ( ξ n n 2 j ) b r v ( b 1 ⋯ b j − 1 ∣ 0 ) \begin{matrix} f_{b_1 \cdots b_{j-1}}[i] & \rightarrow & \rightarrow & \rightarrow & \rightarrow & \rightarrow & \oplus & \rightarrow & f_{b_1 \cdots b_{j-1} |0}[i]\\ &&& \searrow && \nearrow\\ &&&& \cdot\\ &&& \nearrow && \searrow\\ f_{b_1 \cdots b_{j-1}}[i+\frac{n}{2}] & \rightarrow & \otimes & \rightarrow & \rightarrow & \rightarrow & \ominus & \rightarrow & f_{b_1 \cdots b_{j-1} |1}[i]\\ && \uparrow\\ && (\xi_n^{\frac{n}{2^{j}}})^{brv(b_1 \cdots b_{j-1}|0)}\\ \end{matrix} fb1bj1[i]fb1bj1[i+2n](ξn2jn)brv(b1bj1∣0)fb1bj1∣0[i]fb1bj1∣1[i]

  • 阵列的迭代流程,如下图所示:

    j = 0 j=0 j=0 j = 1 j=1 j=1 j = 2 j=2 j=2
    f [ 0 ] f[0] f[0] f 0 [ 0 ] f_0[0] f0[0] f 00 [ 0 ] f_{00}[0] f00[0]
    ⋮ \vdots ⋮ \vdots ⋮ \vdots
    ⋮ \vdots f 0 [ n 4 − 1 ] f_0[\frac{n}{4} - 1] f0[4n1] f 00 [ n 4 − 1 ] f_{00}[\frac{n}{4} - 1] f00[4n1]
    ⋮ \vdots f 0 [ n 4 ] f_0[\frac{n}{4}] f0[4n] f 01 [ 0 ] f_{01}[0] f01[0]
    ⋮ \vdots ⋮ \vdots ⋮ \vdots
    f [ n 2 − 1 ] f[\frac{n}{2} - 1] f[2n1] f 0 [ n 2 − 1 ] f_0[\frac{n}{2} - 1] f0[2n1] f 01 [ n 4 − 1 ] f_{01}[\frac{n}{4} - 1] f01[4n1]
    f [ n 2 ] f[\frac{n}{2}] f[2n] f 1 [ 0 ] f_1[0] f1[0] f 10 [ 0 ] f_{10}[0] f10[0]
    ⋮ \vdots ⋮ \vdots ⋮ \vdots
    ⋮ \vdots f 1 [ n 4 − 1 ] f_1[\frac{n}{4} - 1] f1[4n1] f 10 [ n 4 − 1 ] f_{10}[\frac{n}{4} - 1] f10[4n1]
    ⋮ \vdots f 1 [ n 4 ] f_1[\frac{n}{4}] f1[4n] f 11 [ 0 ] f_{11}[0] f11[0]
    ⋮ \vdots ⋮ \vdots ⋮ \vdots
    f [ n − 1 ] f[n - 1] f[n1] f 1 [ n 4 − 1 ] f_1[\frac{n}{4} - 1] f1[4n1] f 11 [ n 4 − 1 ] f_{11}[\frac{n}{4} - 1] f11[4n1]

    即,使用CT蝴蝶,将阵列 f [ i ] f[i] f[i]迭代运算 j j j次,将会得到 2 j 2^j 2j多项式,它们是 f ( x ) m o d x 2 k − j − ξ j i f(x) \mod x^{2^{k-j}} - \xi_{ji} f(x)modx2kjξji,这里的 ξ j i = ( ξ n n 2 j ) b r v j ( b 1 ⋯ b j ) \xi_{ji} = (\xi_n^\frac{n}{2^j})^{brv_j(b_1 \cdots b_j)} ξji=(ξn2jn)brvj(b1bj)代表第 j j j列、第 i = d e c ( b 1 ⋯ b j ) i = dec(b_1 \cdots b_j) i=dec(b1bj)行的模多项式的常数项。

    如果迭代 k k k次,将会得到 2 k 2^k 2k多项式,它们就是 f ( ξ n b r v ( i ) ) = f ( x ) m o d x − ξ n b r v ( i ) f(\xi_n^{brv(i)}) = f(x) \mod x - \xi_n^{brv(i)} f(ξnbrv(i))=f(x)modxξnbrv(i) f ( x ) f(x) f(x) 2 k 2^k 2kkey-value pair

  • 根据以上分析,我们使用CT蝴蝶迭代,没必要迭代到最后一层。将 f f f分解为若干 f m o d x h − ξ j i f \mod x^h-\xi_{ji} fmodxhξji即可,这便是不完全NTT了。

  • 由于
    f b 1 ⋯ b j − 1 ∣ 0 [ i ] = f b 1 ⋯ b j − 1 [ i ] + ( ξ n n 2 j ) b r v ( b 1 ⋯ b j − 1 ∣ 0 ) f b 1 ⋯ b j − 1 [ i + n 2 ] f b 1 ⋯ b j − 1 ∣ 1 [ i ] = f b 1 ⋯ b j − 1 [ i ] − ( ξ n n 2 j ) b r v ( b 1 ⋯ b j − 1 ∣ 0 ) f b 1 ⋯ b j − 1 [ i + n 2 ] \begin{aligned} f_{b_1 \cdots b_{j-1} |0}[i] = f_{b_1 \cdots b_{j-1}}[i] + (\xi_n^{\frac{n}{2^{j}}})^{brv(b_1 \cdots b_{j-1}|0)} f_{b_1 \cdots b_{j-1}}[i+\frac{n}{2}]\\ f_{b_1 \cdots b_{j-1} |1}[i] = f_{b_1 \cdots b_{j-1}}[i] - (\xi_n^{\frac{n}{2^{j}}})^{brv(b_1 \cdots b_{j-1}|0)} f_{b_1 \cdots b_{j-1}}[i+\frac{n}{2}]\\ \end{aligned} fb1bj1∣0[i]=fb1bj1[i]+(ξn2jn)brv(b1bj1∣0)fb1bj1[i+2n]fb1bj1∣1[i]=fb1bj1[i](ξn2jn)brv(b1bj1∣0)fb1bj1[i+2n]
    那么
    f b 1 ⋯ b j − 1 [ i ] = f b 1 ⋯ b j − 1 ∣ 0 [ i ] + f b 1 ⋯ b j − 1 ∣ 1 [ i + n 2 ] 2 f b 1 ⋯ b j − 1 [ i + n 2 ] = f b 1 ⋯ b j − 1 ∣ 0 [ i ] − f b 1 ⋯ b j − 1 ∣ 1 [ i + n 2 ] 2 ⋅ ( ξ n n 2 j ) b r v ( b 1 ⋯ b j − 1 ∣ 0 ) \begin{aligned} f_{b_1 \cdots b_{j-1}}[i] &= \frac{f_{b_1 \cdots b_{j-1} |0}[i] + f_{b_1 \cdots b_{j-1} |1}[i+\frac{n}{2}]}{2}\\ f_{b_1 \cdots b_{j-1}}[i+\frac{n}{2}] &= \frac{f_{b_1 \cdots b_{j-1} |0}[i] - f_{b_1 \cdots b_{j-1} |1}[i+\frac{n}{2}]}{2 \cdot (\xi_n^{\frac{n}{2^{j}}})^{brv(b_1 \cdots b_{j-1}|0)} }\\ \end{aligned} fb1bj1[i]fb1bj1[i+2n]=2fb1bj1∣0[i]+fb1bj1∣1[i+2n]=2(ξn2jn)brv(b1bj1∣0)fb1bj1∣0[i]fb1bj1∣1[i+2n]

  • 使用GS蝴蝶来进行INTT
    2 ⋅ f b 1 ⋯ b j − 1 [ i ] ← ← ← ⊕ ← ← ← f b 1 ⋯ b j − 1 ∣ 0 [ i ] ↖ ↙ ⋅ ↙ ↖ 2 ⋅ f b 1 ⋯ b j − 1 [ i + n 2 ] ← ⊗ ← ⊖ ← ← ← f b 1 ⋯ b j − 1 ∣ 1 [ i ] ↑ 1 ( ξ n n 2 j ) b r v ( b 1 ⋯ b j − 1 ∣ 0 ) \begin{matrix} 2 \cdot f_{b_1 \cdots b_{j-1}}[i] & \leftarrow & \leftarrow & \leftarrow & \oplus & \leftarrow & \leftarrow & \leftarrow & f_{b_1 \cdots b_{j-1} |0}[i]\\ &&&&& \nwarrow && \swarrow\\ &&&&&& \cdot\\ &&&&& \swarrow && \nwarrow\\ 2 \cdot f_{b_1 \cdots b_{j-1}}[i+\frac{n}{2}] & \leftarrow & \otimes & \leftarrow & \ominus & \leftarrow & \leftarrow & \leftarrow & f_{b_1 \cdots b_{j-1} |1}[i]\\ && \uparrow\\ && \dfrac{1}{(\xi_n^{\frac{n}{2^{j}}})^{brv(b_1 \cdots b_{j-1}|0)}}\\ \end{matrix} 2fb1bj1[i]2fb1bj1[i+2n](ξn2jn)brv(b1bj1∣0)1fb1bj1∣0[i]fb1bj1∣1[i]

    从第 j j j层使用GS蝴蝶做INTT,迭代 j j j次后,将得到阵列 f ′ [ i ] = 2 j f [ i ] m o d q f'[i] = 2^j f[i] \mod q f[i]=2jf[i]modq

    容易恢复多项式: f ( x ) ⟺ f ′ [ i ] ⋅ ( 2 j ) − 1 m o d q f(x) \iff f'[i] \cdot (2^j)^{-1} \mod q f(x)f[i](2j)1modq

总结

  • FFT迭代的每一步,都是利用CRT Z q [ x ] / ( x n − ξ ) ≅ Z q [ x ] / ( x n / 2 − ξ ′ ) × Z q [ x ] / ( x n / 2 − ξ ′ ′ ) Z_q[x]/(x^n - \xi) \cong Z_q[x]/(x^{n/2} - \xi') \times Z_q[x]/(x^{n/2} - \xi'') Zq[x]/(xnξ)Zq[x]/(xn/2ξ)×Zq[x]/(xn/2ξ′′)

  • f m o d x n − ξ f \mod x^n-\xi fmodxnξ 分解为 f m o d x n / 2 − ξ ′ , f m o d x n / 2 − ξ ′ ′ f \mod x^{n/2} - \xi',\,f \mod x^{n/2} - \xi'' fmodxn/2ξ,fmodxn/2ξ′′,其中 x n − ξ = ( x n / 2 − ξ ′ ) ( x n / 2 − ξ ′ ′ ) x^n - \xi = (x^{n/2} - \xi')(x^{n/2} - \xi'') xnξ=(xn/2ξ)(xn/2ξ′′)

  • 迭代 j j j次后,所得结果是: 2 j 2^j 2j个多项式 f b i n j ( i ) = f m o d x n / 2 j − ξ j i , i = 0 , 1 , ⋯ , 2 j − 1 f_{bin_j(i)} = f \mod x^{n/2^j} - \xi_{ji},\, i=0,1,\cdots,2^j-1 fbinj(i)=fmodxn/2jξji,i=0,1,,2j1

  • CT蝴蝶实现FFT,用GS蝴蝶实现IFFT

  • 假设 f ( 1 ) , f ( 2 ) f^{(1)},\, f^{(2)} f(1),f(2)在第 j j j层的分解是 f b i n j ( i ) ( 1 ) , f b i n j ( i ) ( 2 ) f_{bin_j(i)}^{(1)},\, f_{bin_j(i)}^{(2)} fbinj(i)(1),fbinj(i)(2),那么: f ( 1 ) ⋅ f ( 2 ) ⟺ f b i n j ( i ) ( 1 ) ⋅ f b i n j ( i ) ( 2 ) f^{(1)} \cdot f^{(2)} \iff f_{bin_j(i)}^{(1)} \cdot f_{bin_j(i)}^{(2)} f(1)f(2)fbinj(i)(1)fbinj(i)(2),左右都是卷积

  • 如果 j = k j=k j=k,那么: f ( 1 ) ⋅ f ( 2 ) ⟺ f ( 1 ) ( ξ i ) ⋅ f ( 2 ) ( ( ξ i ) ) f^{(1)} \cdot f^{(2)} \iff f^{(1)}(\xi^i) \cdot f^{(2)}((\xi^i)) f(1)f(2)f(1)(ξi)f(2)((ξi)),右边退化为阵列乘积

http://www.dt0577.cn/news/49736.html

相关文章:

  • ab模板网官网seo搜索优化是什么呢
  • 记事本做网站插图片seo属于技术还是营销
  • 网站设置搜索关键字百度网站免费优化软件下载
  • 框架布局技术制作一个网站百度识图在线使用一下
  • 网站建设中 倒计时seo内容优化方法
  • 模板网站做外贸好不好兰州网络推广的平台
  • 建站方案策划书如何开发一款app软件
  • 政府网站建设现状和存在的问题站长之家工具
  • 潍坊设计网站建设百度站长平台链接提交
  • 大学网站建设专业互联网运营推广是做什么的
  • 国外那些网站做展厅比较好西安优化seo托管
  • 药学专业网站开发软件app需要多少钱
  • wordpress如何关闭评论孔宇seo
  • 江苏鑫圣建设工程有限公司网站百度公司简介
  • 天津南开做网站公司南宁百度推广seo
  • 河东网站建设长沙优化科技有限公司正规吗
  • 网站开发验证码的有效性怎么在百度推广
  • 网站建设项目明细全网网站快速排名推广软件
  • 淘宝客网站建设百度seo优化排名如何
  • 建设银行 网站用户变成个人用户凡科建站怎么样
  • 粉红色网站欣赏网络推广的方式和途径有哪些
  • 做教育行业营销类型的网站营销宣传图片
  • wordpress 运行如何利用seo赚钱
  • 收录网站是怎么做的外贸网站建设优化
  • 长沙多用户商城网站建设百度快照提交入口
  • 微应用和微网站的区别是什么直接进入网站的代码
  • 安徽建设网证书查询枫树seo
  • 美女做爰色视频网站北京疫情最新新闻
  • html5 网站平台实体店引流推广方法
  • 庆阳网站建设网页设计制作教程