CINTA——4

CINTA——4

第七章

第二题

①由题意得: Z n ∗ Z_n^* Zn={1,2,3…16};根据推论7.1得,恰好有 φ ( n − 1 ) \varphi(n-1) φ(n1)个生成元;

根据欧拉函数的定义, φ ( n − 1 ) \varphi(n-1) φ(n1)的大小为8,即有八个生成元;

②由①可得, Z n ∗ Z_n^* Zn的阶为16,又由题意得:3是生成元,9 ≡ 3 2 \equiv 3^2 32mod(17),10 ≡ 3 3 \equiv 3^3 33mod(17);且gcd(2,16)=2,gcd(3,16)=1;

根据教材中得命题7.5,所以有,9的阶为16/2=8,10的阶为16/1=16,所以9不是生成元,10是生成元。

第三题

①根据欧拉函数的定义, Z p q Z_{pq} Zpq φ ( p q ) \varphi(pq) φ(pq)个生成元;又因为p和q是两个不用的素数,根据教材中的定理4.3欧拉Phi函数公式,有 φ ( p q ) \varphi(pq) φ(pq)= φ ( p ) \varphi(p) φ(p) φ ( q ) \varphi(q) φ(q),再根据定理4.1欧拉函数的性质,有 φ ( p ) \varphi(p) φ(p)=p-1, φ ( q ) \varphi(q) φ(q)=q-1;所以 Z p q Z_{pq} Zpq有(p-1)(q-1)个生成元。

②根据定理4.1欧拉函数的性质,有 φ ( p k ) \varphi(p^k) φ(pk)= p k p^k pk- p k − 1 p^{k-1} pk1,所以 φ ( p r ) \varphi(p^r) φ(pr)= p r p^r pr- p r − 1 p^{r-1} pr1,所以生成元的个数为 p r p^r pr- p r − 1 p^{r-1} pr1

第六题

首先我们需要知道什么是平凡群:

任意子群都有两个明显的子群,称为平凡子群,即{e}和它本身G。

而根据题意,G中没有非平凡子群,即G中只有平凡子群。又因为 G = < e > G=<e> G=<e>为循环群,因此取g ∈ \in G,并且g ≠ \neq =e,则根据教材中循环群的命题7.1,由g生成的群 < g > <g> <g>是G的子群,又 是循环群,但是G不含非平凡子群,故 < g > <g> <g>只能是G,因此G是循环群。

第八题

根据扩展欧几里得算法,存在r和s,使得d=gcd(m,n)=rm+bsn;

所以 g d g^d gd= g r m + s n g^{rm+sn} grm+sn= g r m g^{rm} grm ⋅ \cdot g s n g^{sn} gsn= ( g m ) r {(g^m)}^r (gm)r ⋅ \cdot ( g n ) s {(g^n)}^s (gn)s;题中已给出 g m g^m gm=1, g n g^n gn=1,因此可得: g d g^d gd= ( 1 ) r (1)^r (1)r ⋅ \cdot ( 1 ) s (1)^s (1)s=1,得证。


第八章

第一题

见到“当且仅当”就需要证明两个方向:

首先证明充分性:

如果 g 1 H = g 2 H g_1H=g_2H g1H=g2H,则存在hl,h2 ∈ \in H使得 g 1 h 1 = g 2 h 2 g_1h_1=g_2h_2 g1h1=g2h2,即得 g 2 = g 1 h 1 h 2 − 1 g_2=g_1h_1h_2^{-1} g2=g1h1h21

根据6.3子群章节中的命题6.9可知,也即 g 2 ∈ g 1 H g_2\in g_1 H g2g1H。充分性得证。

其次证明必要性:

根据教材中第八章命题8.1陪集属性:

设G 是群,H是G的子群。任取 ,91,92 E G
则 giH = gH 当且仅当 g 2 g_2 g2 ∈ \in g 1 H g_1H g1H;

上述高亮部分的两侧同时乘以 g − 1 g^{-1} g1,则转化为 g 1 − 1 g 2 ∈ g^{-1}_1g_2\in g11g2 H H H。必要性得证。

故命题8.1得证。

第三题

根据 [ G : H ] = 2 [G:H]=2 [G:H]=2,可知,H在G中有两个不用的左陪集(也可以是右陪集)因此加上子群H,G被划分为三部分,注意这里不是两部分!!!
现在要证明在 [ G : H ] = 2 [G:H]=2 [G:H]=2条件下,左陪集等于右陪集
因此,从群G中任取q,可能有两种情况:
q ∈ H q\in H qH,(在子群里面),则 q H = H q = H qH=Hq=H qH=Hq=H(换句话讲就是:q被吸收进H中了)
q ∈ G 且 q ∉ H q\in G 且q\notin H qGq/H,则 g H = G − H , H g = G − H gH=G-H,Hg=G-H gH=GH,Hg=GH,因此 g H = H g gH=Hg gH=Hg得证。

第五题

G的非平凡子群是除{e}和G本身以外的其他子群;

由题意得:G得的阶为pq,则根据拉格朗日定理可知:子群的阶必然整除群G的阶!!!
若想是子群的阶可以整除pq,则子群的阶只能为1,p,q,pq;又因为题目要求证明的是非平凡子群,所以阶为p,q;又因为p,q为素数,根据拉格朗日定理的推论8.2

设 G 是素数阶有限群,即|G|=p,p是素数,则G是循环群且任意非单位元元素g ∈ \in G是生成元。

可得:非平凡子群是循环群,且任意非单位元元素g ∈ \in G是生成元。

第九题

编程代码如下(代码不一定正确,请批判使用!):

#第一问
#求p-1的所有素因子
def prime_factors(n):
    factors = []
    i = 2
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            factors.append(i)
    if n > 1:
        factors.append(n)
    return factors
#判断是不是原根
def is_primitive_root(a, p):
    flist = prime_factors(p-1)
    for f in flist:
        if pow(a, (p-1)//f, p) == 1:
            return False
    return True
#求最小生成元
def find_minimal_generator(p):
    for a in range(2, p):
        if is_primitive_root(a, p):
            return a
    return None
def main():
    p=int(input('请输入一个素数:'))
    min_gen=find_minimal_generator(p)
    print('最小生成元是:',min_gen)
if __name__ == '__main__':
    main()
#第二问
#求p-1的所有素因子
def prime_factors(n):
    factors = []
    i = 2
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            factors.append(i)
    if n > 1:
        factors.append(n)
    return factors
#判断是不是原根
def is_primitive_root(a, p):
    flist = prime_factors(p-1)
    for f in flist:
        if pow(a, (p-1)//f, p) == 1:
            return False
    return True
#求最小生成元
def find_minimal_generator(p):
    for a in range(2, p):
        if is_primitive_root(a, p):
            return a
    return None
#最小生成元集合里面最大素数
def max_prime_for_min_gen(n):
    max_p = None
    max_min_gen = None
    for p in range(2, n):
        if all(is_prime(i) for i in prime_factors(p)):
            min_gen = find_minimal_generator(p)
            if min_gen and (max_min_gen is None or min_gen > max_min_gen):
                max_min_gen = min_gen
                max_p = p
    return max_p
#判断是不是素数
def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            return False
    return True
def main():
    n = int(input('请输入一个整数n:'))
    max_p = max_prime_for_min_gen(n)
    print('最大素数对应的最小生成元集合中的最大者所对应的素数是:', max_p)
if __name__ == '__main__':
    main()
第八章自己的一点小总结:

陪集、商集等一系列概念都来源于群的划分。划分的目的是为了研究群的结构。所谓划分,就是把一个集合分为若干个不相交集合的并集。

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值