分解域上的不可约多项式

2018-12-26  本文已影响0人  liwl23

问题:给定有限域F_q上的不可约多项式f(x),将f(x)分解为不可约多项式的乘积,即如下形式:
f(x)=\prod_{i=1}^{r}{f_i(x)^{e_i}}

一般的多项式

对于一般的多项式f(x),步骤如下:

  1. 求解方程g(x)^q \equiv g(x)\ mod(f(x)),得到一组基:g_1(x),g_2(x),g_3(x),...,g_r(x)
  2. R=\{f(x)\},L={\emptyset}
  3. for i= 1 to r:
    L={\emptyset}
    for r(x) in R:
    r(x) = \prod_{s \in F_q}{gcd(r(x),g_i(x)+s)}=f_1(x)f_2(x)...f_k(x)
    L=L\cup\{f_1(x),f_2(x),...f_k(x)\}
    endfor
    R=L
    if |R| = r:
    break;
    endif

endfor
最终得到f(x)=\prod_{f_i(x)\in R}{f_i(x)}

  1. 对每个f_i(x),判定是否有重因子。判断方法:如果gcd(f_i(x),f_i'(x))=1则无重因子,否则重因子为p_i(x)=\frac{f_i(x)}{gcd(f_i(x),f'_i(x))},且有f(x)=\prod_{i=1}^{r}(p_i(x))^{\frac{deg(f_i(x))}{deg(p_i(x))}}

形如x^n-1的多项式

  1. 如果n可以写作n=n_1p^r(r!=0)的形式,则有
    x^n-1=(x^{n_1}-1)^{p^r}
    这样只需要分解x^{n_1}-1就可以了。
  2. 由于x^n-1的形式比较特殊,所以我们不需要解方程就可以写出所有的g_i(x)。求法如下:
  1. Z_n=\{0,1,2,...,n-1\},R=\emptyset,P=\emptyset
  2. i\in Z_n-R,求出集合A_i = \{i,ip,ip^2,ip^3,...\}
  3. R=R\cup A_iP=P\cup \{A_i\}
  4. 如果R=Z_n,继续下去。否则跳转到2
  5. 每个A_i对应一个g_i(x)。对应规则为:g_i(x)=\sum_{a \in A_i}{x^{a}}
  1. 跳转到一般多项式中的2(无需判定是否有重因子)。
上一篇下一篇

猜你喜欢

热点阅读