Skip to content

第 3 章:本原单位根、阶与互素 ​

本章对象:\operatorname{ord}(\alpha) 是使 \alpha^d=1 的最小正整数 d;\gcd(a,n) 是正的最大公因数。

3.1 补充证明:互素时为什么可以约掉一个整数因子 ​

整数 Euclidean 算法从 a=qn+r 开始,不断用除数除余数,直到余数为零。公因数在每一步保持不变,最后一个非零余数是 g=\gcd(a,n);倒代得到整数 u,v 使 ua+vn=g。负整数可先取绝对值再调整符号。

若 \gcd(a,n)=1 且 n\mid ad,取 ua+vn=1 并乘 d,得 d=uad+vnd。右边两项均被 n 整除,因此 n\mid d。这正是阶公式中“约掉互素部分”的理由。

3.2 本原单位根、阶与互素指数 ​

原问题:从这里继续

我们就从这里继续,而且把“本原 n 次单位根”这件事一步一步彻底讲清楚。

前面我们已经知道:

x^n-1=0

的全部复根是

1,\zeta_n,\zeta_n^2,\dots,\zeta_n^{n-1},

其中

\zeta_n=e^{2\pi i/n}.

现在的问题是:

\boxed{\text{为什么这些根里只有一部分是“本原 }n\text{ 次单位根”?}}

关键在于一个概念:阶(order)。

一个单位根 \alpha 的阶,定义为最小的正整数 m,使得

\alpha^m=1.

例如:

1^1=1,

所以 1 的阶是 1。

再看

-1.

有:

(-1)^1=-1\neq1,

但

(-1)^2=1.

所以 -1 的阶是 2。

现在看

\zeta_6=e^{2\pi i/6}.

我们有

\zeta_6^6=1.

但更小的正整数 1,2,3,4,5 都不能让它变成 1,所以它的阶是 6。

因此:

\boxed{\zeta_6\text{ 是本原 6 次单位根}}

所谓“本原 n 次单位根”,就是:

\boxed{\text{阶恰好等于 }n\text{ 的单位根}}

这比“它满足 z^n=1”更强。

因为满足

z^n=1

只说明:

\operatorname{ord}(z)\mid n,

并不说明它的阶一定就是 n。

例如:

-1

满足

(-1)^6=1,

所以它当然是一个 6 次单位根。

但是它的阶只有 2,所以它不是本原 6 次单位根。

这就是最容易混淆的地方:

\boxed{
\text{$n$ 次单位根}
\neq
\text{本原 $n$ 次单位根}
}

前者只要求

z^n=1,

后者要求

z^n=1

且没有任何更小的正整数 m<n 使

z^m=1.

现在我们看 n=6 的全部根:

1,\zeta_6,\zeta_6^2,\zeta_6^3,\zeta_6^4,\zeta_6^5.

分别判断它们的阶。

1

的阶是 1。

\zeta_6

的阶是 6。

\zeta_6^2

满足

(\zeta_6^2)^3=\zeta_6^6=1,

所以它的阶至多是 3。实际上就是 3。

\zeta_6^3

满足

(\zeta_6^3)^2=\zeta_6^6=1,

所以它的阶是 2。

\zeta_6^4

和 \zeta_6^2 一样,阶是 3。

而

\zeta_6^5

的阶又是 6。

所以:

\boxed{
\text{本原 6 次单位根只有 }
\zeta_6,\zeta_6^5
}

这时你可能会问:

为什么偏偏是指数 1 和 5?

因为

\gcd(1,6)=1,
\gcd(5,6)=1.

而:

\gcd(2,6)=2,
\gcd(3,6)=3,
\gcd(4,6)=2.

所以会得到一个非常重要的结论:

\boxed{
\zeta_n^k\text{ 是本原 }n\text{ 次单位根}
\iff
\gcd(k,n)=1
}

为什么?

因为:

(\zeta_n^k)^m=1

等价于

\zeta_n^{km}=1.

而前面已经知道:

\zeta_n^r=1
\iff
n\mid r.

所以:

(\zeta_n^k)^m=1
\iff
n\mid km.

我们要找最小的正整数 m。

设:

d=\gcd(n,k).

写成:

n=dn',
\qquad
k=dk',

其中:

\gcd(n',k')=1.

条件

n\mid km

变成:

dn'\mid dk'm.

约掉 d:

n'\mid k'm.

由于

\gcd(n',k')=1,

所以必须:

n'\mid m.

最小这样的 m 就是:

m=n'=\frac{n}{d}.

因此:

\boxed{
\operatorname{ord}(\zeta_n^k)
=
\frac{n}{\gcd(n,k)}
}

于是:

\operatorname{ord}(\zeta_n^k)=n

当且仅当

\gcd(n,k)=1.

所以“本原”本质上对应“指数和 n 互素”。

这一步一旦明白,欧拉函数就会非常自然:

\varphi(n)

定义为 1,\dots,n 中和 n 互素的整数个数。

所以本原 n 次单位根的个数就是:

\boxed{\varphi(n)}

比如 n=8,与 8 互素的是

1,3,5,7,

所以本原 8 次单位根是:

\zeta_8,\zeta_8^3,\zeta_8^5,\zeta_8^7,

一共

\varphi(8)=4

个。

而这四个根正好就是

\Phi_8(x)

的全部根。

所以:

\boxed{
\Phi_n(x)
=
\prod_{\substack{1\le k\le n\\\gcd(k,n)=1}}(x-\zeta_n^k)
}

并且:

\boxed{
\deg\Phi_n=\varphi(n)
}

这里整条逻辑链是:

\zeta_n^k

的阶为

\frac n{\gcd(n,k)}

所以阶恰好为 n

\iff \gcd(n,k)=1,

于是本原 n 次单位根有

\varphi(n)

个,于是第 n 个分圆多项式有

\varphi(n)

个根,于是

\deg\Phi_n=\varphi(n).

下一步最自然的是讲:

\boxed{x^n-1=\prod_{d\mid n}\Phi_d(x)}

为什么成立。这个公式正好把“所有 n 次单位根”和“按阶分类的本原单位根”完全连接起来。

3.3 普通单位根与本原单位根怎样区分 ​

原问题:本原几次和阶数很容易搞反吧

对,非常容易混,尤其“n 次单位根”和“本原 n 次单位根”长得太像。

最稳妥的办法是始终把“本原 n 次”翻译成一句话:

\boxed{\text{本原 }n\text{ 次单位根}=\text{阶恰好等于 }n}

而普通的“n 次单位根”只要求:

\alpha^n=1.

它的阶可以是 n 的任何约数,不一定是 n。

比如 -1:

(-1)^6=1,

所以它是 6 次单位根;但

(-1)^2=1,

而且 2 是最小的,所以它的阶是 2。因此它不是本原 6 次单位根,而是:

\boxed{\text{本原 2 次单位根}}

你可以记成:

\boxed{
\text{“几次单位根”看它满足哪个 }x^n=1;
\quad
\text{“本原几次”看它的最小指数,也就是阶。}
}

再举一个:

\zeta_6^2.

它当然满足

(\zeta_6^2)^6=1,

所以是 6 次单位根。

但实际上:

(\zeta_6^2)^3=1,

而 3 是最小的,所以

\operatorname{ord}(\zeta_6^2)=3.

因此它是:

\boxed{\text{本原 3 次单位根}}

不是本原 6 次单位根。

所以最关键的一句话就是:

\boxed{
\alpha\text{ 是本原 }n\text{ 次单位根}
\iff
\operatorname{ord}(\alpha)=n
}

这两个概念其实不是两个独立概念:“本原 n 次”就是“阶为 n”的另一种说法。

3.4 忘记阶公式时,从整除条件重新推导 ​

原问题:这个怎么来的,我突然忘记了

这个公式就是我们前面证明过的:

\boxed{\operatorname{ord}(\zeta_n^a)=\frac{n}{\gcd(a,n)}}

重新推一遍就清楚了。

设

d=\operatorname{ord}(\zeta_n^a),

意思是 d 是最小正整数,使得

(\zeta_n^a)^d=1.

于是:

\zeta_n^{ad}=1.

而 \zeta_n 本身的阶是 n,所以:

\zeta_n^m=1
\iff
n\mid m.

因此这里等价于:

\boxed{n\mid ad}.

现在问题就变成:

最小的正整数 d 是多少,才能让 n\mid ad?

设

g=\gcd(a,n).

把它们写成:

a=ga',\qquad n=gn',

并且:

\gcd(a',n')=1.

条件

n\mid ad

就变成:

gn'\mid ga'd.

约去 g:

n'\mid a'd.

但因为:

\gcd(a',n')=1,

所以 a' 不能帮 d 提供任何 n' 的因子,因此必须:

n'\mid d.

最小的正整数 d 就是:

d=n'.

而:

n'=\frac ng=\frac{n}{\gcd(a,n)}.

所以:

\boxed{
\operatorname{ord}(\zeta_n^a)
=
\frac{n}{\gcd(a,n)}
}

例如:

\zeta_{12}^8.

因为

\gcd(8,12)=4,

所以:

\operatorname{ord}(\zeta_{12}^8)
=
\frac{12}{4}
=
3.

你也可以直接验证:

(\zeta_{12}^8)^3
=
\zeta_{12}^{24}
=
1,

而 1、2 次幂都还不是 1。

最好记住背后的核心句子:

\boxed{
\operatorname{ord}(\zeta_n^a)
=
\text{使 }n\mid ad\text{ 的最小正整数 }d
}

公式只是从这句话算出来的。

3.5 本原单位根的数量不是一,恰好是欧拉函数 ​

原问题:但是一个本原n次根有几个不一定对吧

对,你理解得对。

“本原 n 次单位根”不是唯一的。满足

\operatorname{ord}(\alpha)=n

的元素通常有多个,它们的个数正好是

\boxed{\varphi(n)}

其中 \varphi 是欧拉函数。

例如 n=5。全部 5 次单位根是

1,\zeta_5,\zeta_5^2,\zeta_5^3,\zeta_5^4.

因为

1,2,3,4

都和 5 互素,所以

\zeta_5,\zeta_5^2,\zeta_5^3,\zeta_5^4

全都是本原 5 次单位根。因此有

\varphi(5)=4

个。

再比如 n=6。只有指数与 6 互素的那些:

1,5.

所以本原 6 次单位根只有

\zeta_6,\zeta_6^5,

共

\varphi(6)=2

个。

所以要区分这两句话:

\boxed{\text{“一个本原 }n\text{ 次单位根”}}

指的是“任选其中一个”,比如我们常常记作

\zeta_n.

而

\boxed{\text{“所有本原 }n\text{ 次单位根”}}

则有

\varphi(n)

个,具体就是

\boxed{
\zeta_n^k,\qquad \gcd(k,n)=1.
}

这也是为什么记号 \zeta_n 容易让人误以为“本原 n 次单位根只有一个”:其实 \zeta_n 只是我们挑选并固定的一个代表。

保留每一次追问,认真走完每一步证明。