分圆多项式

Published: by Creative Commons Licence

  • Tags:

分圆多项式

wn表示一个n次本原单位根(即w1n,,wn1n1wnn=1)。那么w1n,w1n,,wn1n,wnnxn1n个根。因此有:

xn1=ni=1(xwin)

定义分圆多项式为Φn(x)=ni=1(xwin)[gcd(i,n)=1]。即根恰好为所有n次本原根的多项式。

由定义可以发现:

d|nΦd(x)=xn1

我们可以用莫比乌斯反演推出:

d|nlnΦd(x)=ln(xn1)lnΦn(x)=d|nμ(n/d)ln(xd1)Φn(x)=d|n(xd1)μ(n/d)

我们也可以通过递推的方式计算Φn(x),直接通过(xn1)/d|nd<nΦd(x)来得到,其中Φ1(x)=x1

分圆多项式的特性如下:

  • 分圆多项式都是首一整系数多项式
  • 分圆多项式在整数环Z上是不可约的
  • modΦn(x)意义下,x的阶正好为n

题目1:计算Φn(x)

可以考虑两种做法,一种是通过Φn(x)=(xn1)/d|nd<nΦd(x)来得到。这种做法的时间复杂度为O(d|nd2),同时它还能对于任意t|n,找到Φt(x)

还有一种方法是通过Φn(x)=d|n(xd1)μ(n/d)得到,利用一些技术,我们可以得到O(nlog2n)的时间复杂度的算法。

题目2:对xn1做因式分解,将其分解为f1×f2××fk的形式,且fi是不可约整系数多项式。

提供一道题目

根据下面公式找到所有分圆多项式,之后输出即可。

d|nΦn(d)=xn1

参考资料