第七章
题2
题目:群
Z
17
∗
Z_{17}^{*}
Z17∗ 有多少个生成元?已知
3
3
3 是其中一个生成元,请问
9
9
9 和
10
10
10 是否生成元?
解题思路:
由原根定理可知:
17
17
17有
ϕ
(
17
−
1
)
\phi(17-1)
ϕ(17−1)个原根,即
Z
17
∗
Z_{17}^{*}
Z17∗有
ϕ
(
17
−
1
)
\phi(17-1)
ϕ(17−1)个生成元,利用欧拉公式计算可知
ϕ
(
17
−
1
)
=
16
×
1
2
=
8
\phi(17-1)=16\times \frac{1}{2}=8
ϕ(17−1)=16×21=8.
故群
Z
17
∗
Z_{17}^{*}
Z17∗ 有
8
8
8 个生成元.
由以下命题
设群 G = ⟨ g ⟩ G=\left \langle g\right \rangle G=⟨g⟩ 是阶为 n n n 的循环群。如果 h = g k h = g^k h=gk,则 o r d ( h ) = n / g c d ( n , k ) ord(h)=n/gcd(n,k) ord(h)=n/gcd(n,k)。
可知:取命题中
k
k
k 与
n
n
n 互素即可由已知生成元构造另一个生成元.
已知
3
3
3 是其中一个生成元:
注意到
3
3
≡
10
(
m
o
d
17
)
3^{3}\equiv 10 \pmod{17}
33≡10(mod17),且
3
3
3 与群的阶
16
16
16 互素,故
10
10
10 是生成元.
注意到
9
8
=
3
16
≡
1
(
m
o
d
17
)
9^8=3^{16}\equiv 1\pmod{17}
98=316≡1(mod17),故
9
9
9 不是生成元.
题3
题目:
p
p
p 和
q
q
q 是两个不同的素数,请问
Z
p
q
Z_{pq}
Zpq 有多少个生成元?
r
r
r 是任意正整数,请问
Z
p
r
Z_{p^{r}}
Zpr都有多少个生成元?
解题思路:
由以下命题
设群 G = ⟨ g ⟩ G=\left \langle g\right \rangle G=⟨g⟩ 是阶为 n n n 的循环群,则群 G G G 中恰有 ϕ ( n ) ϕ(n) ϕ(n) 个生成元。
可知:
Z
p
q
Z_{pq}
Zpq 有
ϕ
(
p
q
)
=
p
q
(
1
−
1
p
)
(
1
−
1
q
)
=
(
p
−
1
)
(
q
−
1
)
\phi(pq)=pq(1-\frac{1}{p})(1-\frac{1}{q})=(p-1)(q-1)
ϕ(pq)=pq(1−p1)(1−q1)=(p−1)(q−1) 个生成元.
Z
p
r
Z_{p^{r}}
Zpr有
ϕ
(
p
r
)
=
p
r
(
1
−
1
p
)
=
p
r
−
p
r
−
1
\phi(p^r)=p^r(1-\frac{1}{p})=p^r-p^{r-1}
ϕ(pr)=pr(1−p1)=pr−pr−1 个生成元.
题6
题目:
证明:如果群
G
G
G 没有非平凡子群,则群
G
G
G 是循环群。
证明思路:
容易验证当
G
=
{
e
}
G=\{e\}
G={e} 时,命题成立.
下面仅讨论
G
G
G 中除了
e
e
e 还有其他元素的情况:
任取
g
∈
G
∧
g
≠
e
g\in G\wedge g\neq e
g∈G∧g=e,构造
⟨
g
⟩
=
{
g
i
∣
i
∈
Z
}
\left \langle g \right \rangle=\left \{ g^i|i\in\Z\right \}
⟨g⟩={gi∣i∈Z},容易验证其是
G
G
G 的子群(
⟨
g
⟩
\left \langle g \right \rangle
⟨g⟩ 同时也是循环群).
由于
G
G
G 仅有
G
G
G 和
{
e
}
\{e\}
{e} 两个子群,而
⟨
g
⟩
≠
{
e
}
\left \langle g \right \rangle\neq \{e\}
⟨g⟩={e},故:
G
=
⟨
g
⟩
G=\left \langle g \right \rangle
G=⟨g⟩
这样就证明了群
G
G
G 是循环群.
题8
题目:
证明:设
G
G
G 为任意群,且
g
∈
G
g ∈ G
g∈G。如果存在
m
,
n
∈
Z
m, n ∈ \Z
m,n∈Z 使得
g
m
=
1
g^m = 1
gm=1 且
g
n
=
1
g^n = 1
gn=1,则
g
d
=
1
g^d = 1
gd=1,其中
d
=
g
c
d
(
m
,
n
)
d = gcd(m, n)
d=gcd(m,n)。
证明思路:
由Bezout定理知:
∃
a
,
b
∈
Z
,
d
=
a
m
+
b
n
\exists a,b\in \Z,d=am+bn
∃a,b∈Z,d=am+bn.
故:
g
d
=
g
a
m
+
b
n
=
(
g
m
)
a
(
g
n
)
b
=
1
g^{d}=g^{am+bn}=(g^m)^a(g^n)^b=1
gd=gam+bn=(gm)a(gn)b=1,证毕.
第八章
题1
题目:设
G
G
G 是群,
H
H
H 是
G
G
G 的子群。任取
g
1
,
g
2
∈
G
g_1, g_2 ∈ G
g1,g2∈G,则
g
1
H
=
g
2
H
g_1H = g_2H
g1H=g2H 当且仅当
g
1
−
1
g
2
∈
H
g_1^{-1}g_2 ∈ H
g1−1g2∈H。
证明思路:
证明分两个方向:
设
e
e
e 是
G
G
G 的单位元,
①
⇒
\Rightarrow
⇒ 方向:由于
g
2
=
g
2
e
,
e
∈
H
g_2=g_2e,e\in H
g2=g2e,e∈H,故
g
2
∈
g
2
H
g_2\in g_2H
g2∈g2H.
由于
g
1
H
=
g
2
H
g_1H = g_2H
g1H=g2H,故
g
2
∈
g
1
H
g_2\in g_1H
g2∈g1H,进而有:
∃
h
∈
H
,
g
2
=
g
1
h
\exists h\in H, g_2=g_1h
∃h∈H,g2=g1h,即:
g
1
−
1
g
2
=
h
∈
H
g_1^{-1}g_2=h\in H
g1−1g2=h∈H
② ⇐ \Leftarrow ⇐ 方向:由于 g 1 − 1 g 2 ∈ H g_1^{-1}g_2 ∈ H g1−1g2∈H,故 ∃ h ∈ H , g 1 − 1 g 2 = h ∈ H \exists h\in H,g_1^{-1}g_2=h\in H ∃h∈H,g1−1g2=h∈H.
要证明 g 1 H = g 2 H g_1H=g_2H g1H=g2H,只需证明: g 1 H ⊂ g 2 H , g 2 H ⊂ g 1 H g_1H\subset g_2H, g_2H\subset g_1H g1H⊂g2H,g2H⊂g1H。
(1) 先证明
g
1
H
⊂
g
2
H
g_1H\subset g_2H
g1H⊂g2H:
对此,即证
∀
a
∈
g
1
H
,
有:
a
∈
g
2
H
\forall a\in g_1H,有:a\in g_2H
∀a∈g1H,有:a∈g2H.
由于
a
∈
g
1
H
a\in g_1H
a∈g1H,故:
∃
h
1
∈
H
,
a
=
g
1
h
1
\exists h_1 \in H,a=g_1h_1
∃h1∈H,a=g1h1,
此时不难发现
a
=
g
1
h
1
=
g
2
(
g
2
−
1
g
1
h
1
)
a=g_1h_1=g_2(g_2^{-1}g_1h_1)
a=g1h1=g2(g2−1g1h1),而
g
2
−
1
g
1
h
1
=
(
g
1
−
1
g
2
)
−
1
h
1
g_2^{-1}g_1h_1=(g_1^{-1}g_2)^{-1}h_1
g2−1g1h1=(g1−1g2)−1h1.
由于
H
H
H 是群且
g
1
−
1
g
2
∈
H
g_1^{-1}g_2\in H
g1−1g2∈H,故
(
g
1
−
1
g
2
)
−
1
∈
H
(g_1^{-1}g_2)^{-1} \in H
(g1−1g2)−1∈H,又
h
1
∈
H
h_1\in H
h1∈H,进而由封闭性可知:
g
2
−
1
g
1
h
1
=
(
g
1
−
1
g
2
)
−
1
h
1
∈
H
g_2^{-1}g_1h_1=(g_1^{-1}g_2)^{-1}h_1\in H
g2−1g1h1=(g1−1g2)−1h1∈H.
即:
a
=
g
2
(
g
2
−
1
g
1
h
1
)
且
g
2
−
1
g
1
h
1
∈
H
a=g_2(g_2^{-1}g_1h_1)且g_2^{-1}g_1h_1\in H
a=g2(g2−1g1h1)且g2−1g1h1∈H,故
a
∈
g
2
H
a\in g_2H
a∈g2H.
从而证明了
g
1
H
⊂
g
2
H
g_1H\subset g_2H
g1H⊂g2H。
(2) 对于
g
2
H
⊂
g
1
H
g_2H\subset g_1H
g2H⊂g1H 类似可证,不再赘述。
题3
题目:如果
G
G
G 是群,
H
H
H 是群
G
G
G 的子群,且
[
G
:
H
]
=
2
[G : H] = 2
[G:H]=2,请证明对任意的
g
∈
G
,
g
H
=
H
g
g ∈ G,gH = Hg
g∈G,gH=Hg。
证明思路:
分两种情况讨论:
①若
g
∈
H
g\in H
g∈H,则
H
=
g
H
=
H
g
H=gH=Hg
H=gH=Hg.
②若
g
∈
G
且
g
∉
H
g\in G且g\notin H
g∈G且g∈/H,则由陪集的同一或不相交性可知:
g
H
=
G
−
H
,
H
g
=
G
−
H
gH=G-H,Hg=G-H
gH=G−H,Hg=G−H
故:
g
H
=
H
g
gH=Hg
gH=Hg.
题5
题目:设
G
G
G 是阶为
p
q
pq
pq 的群,其中
p
p
p 和
q
q
q 是素数。请证明
G
G
G 的任意非平凡子群是循环群。
证明思路:
设
H
H
H 是
G
G
G 的非平凡子群,则
∣
H
∣
≠
1
且
∣
H
∣
≠
∣
G
∣
|H|\neq 1且|H|\neq |G|
∣H∣=1且∣H∣=∣G∣.
由拉格朗日定理可知:
∣
G
∣
m
o
d
∣
H
∣
=
0
|G|\bmod|H|=0
∣G∣mod∣H∣=0.
故
∣
H
∣
=
p
或
q
|H|=p或q
∣H∣=p或q,即
H
H
H 是素数阶群,故
H
H
H 是循环群,原命题得证.
题8
题目:.
编程完成以下工作:对任意给定的一个素数
p
p
p,求出
Z
p
∗
Z ^*_p
Zp∗ 的最小生成元。任取一个整数
n
n
n,对大于
1
1
1 小于
n
n
n 的所有素数
p
p
p,求
Z
p
∗
Z^∗_p
Zp∗ 的最小生成元,并求以上最小生成元集合中最大者所对应的素数 p。
代码如下:
import math
import gmpy2
#返回n的素因子列表
def prime_factor_list(n):
list = []
for i in range(2,int(math.sqrt(n))+2):
if n % i == 0 and gmpy2.is_prime(i):
list.append(i)
return list
#判定a是否模p的原根(源于课本第7章第4节),其正确性可以用因式分解简单证明
def if_generator(a,p):
flist = prime_factor_list(p-1)
for i in flist:
t = pow(a,(p-1)//i,p)
if t == 1:
return False
return True
#寻找模p的最小生成元
def find_min_generator(p):
for i in range(1, p):
if if_generator(i, p) == True:
return i
#给定n,以列表形式返回2~n的全部素数的最小生成元
def min_generator_list(n):
prime = []
list = []
for i in range(2, n):
if gmpy2.is_prime(i):
prime.append(i)
list.append(find_min_generator(i))
return prime, list
#求上述最小生成元集合中最大者所对应的素数p
def fun(n):
#n=2时最小生成元集合为空,直接结束即可
if n == 2:
return.
prime, flist = min_generator_list(n)
m = max(flist)
index = [i for i,j in enumerate(flist) if(j==m)]
for i in index:
print(prime[i])