素数p阶群乘法循环群啥意思_抽象代数2-3 群元素的阶和循环群

本文探讨了群论的基本概念,包括群元素的阶、循环群的性质以及它们之间的关系。举例说明了整数加群和四次单位根群的结构,阐述了无限和有限循环群的同构性质,并介绍了欧拉函数在循环群中的应用。通过一系列练习题加深了对群论基本理论的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2ca28b4429da666ccf28df6ac0028970.png

研究一个群,自然的想法是先从最简单的一个元素"a" 开始,与"a" 有关的自然是a和自己以及它的逆的一些运算构成的幂

。a的幂跟单位元的关系得到元素的阶的概念,a的幂构成的集合是一个结构清楚的群---循环群。

一、群元素的阶

研究一个群,自然的想法是先从最简单的一个元素"a" 开始",与"a" 有关的自然是下面的元素:

第一个自然的想法是:a的幂和最特殊的元素---单位元e有没有关系?

定义1(群元素的阶) 设a是群G中的一个元素,使得
的最小正整数n称为a的阶,记作|a|. 若这样的n不存在,则称a是无限阶的,记为|a|=+∞。 注: (1)单位元|e|=1; (2)
(3)
.

第2条

很容易验证,由这一条性质可以得到:有限群中阶大于2的元素一定是偶数个;从而偶数阶群中一定有2阶元素。(思考一下为什么?)

例1:整数加群中0的阶为1,1的阶为+∞。

例2:4次单位根群 G={1,-1,i,-i}中

观察

次数与阶数的关系。
定义2:若群G中每个元素的阶都有限,则称G为周期群;若G中除e外,其余元素的阶无限,则称G为无扭群;既不是周期群也不是无扭群的群称为混合群。
定理1:有限群中每个元素的阶都有限
证明:处理有限群的方法我们用过很多遍了,就是形式地写出很多个元素,其中必有相等的元。例如此定理:
中必有相等的,设
,则
注:无限群中元素的阶可能有限也可能无限,甚至可能都有限。

例3 :设

是全体i 次单位根对普通乘法作成的i次单位根群。令
, 则U对普通乘法作成一个群,且是一个无限交换群,其中每个元素的阶都有限。

接着例2,给了一个元素a的阶数之后,我们自然的想知道a的幂次的阶和a的阶是否有关系。

定理2:设群G中元素a的阶是n,则

证明:对m用一下带余除法:m=nq+r,考虑阶数n的最小性即可。
定理3:设群G中元素a的阶是n,则

证明一个元素x的阶数为r,只需证明(1)

并且(2)r是最小的正整数即可。证明r最小的时候,一般的处理方法是设还有s使得
,则 r 整除 s,从而
(接下来的几个证明都是如此)
定理3的证明:为了方便书写,设

(1)

(2) 设还有
,由定理2,
,从而
,
的阶。
推论1:设|a|=st, 则
, 其中s,t 是正整数。 推论2:设|a|=n, 则

接下来自然考虑两个元素乘积的阶数,遗憾的是,通常情况下两个元素a,b的乘积ab的阶数与a的阶和b的阶没有什么关系,只有附加上乘法交换,并且两个元素的阶互素的时候才有如下结论。

定理4:若群中元素|a|=m,|b|=n, 则当ab=ba,且 (m,n)=1时, |ab|=mn.
定理4的证明:(1)

(2)设还有
(那么为了建立s和m,n的关系,我们给这个式子做m次方,建立s和m,n的桥梁) 故
及定理2知,
同理
.故 |ab|=mn.

反例4:在一般线性群中,

的阶为2,
的阶也为2. |AB|=+∞.
定理5: 设G 为交换群,且G中所有元素有最大阶m,则G中每个元素的阶都是m的因数。
定理5的证明:设G中元素a有最大阶m,任取另一个元素b,设其阶为n。若
.则必然存在素数p,使得

(这是两个整数,n不整除m的等价条件,也是处理不整除的通常做法,想想为什么?)
由|a|=m,|b|=n,得
因此我们只需要构造一个G中阶大于
的元即可,所以令
,由定理4,
矛盾。

共轭元是非交换代数、非结合代数中非常重要的概念。实际上共轭元的阶数相等。证起来很容易。

定理6:元素b与其共轭元
阶相同。

关于元素的阶数可以做几个练习:

练习1:证明定理6以及:(1)ab与ba阶相同;(2)abc,bca,cab阶相同;(3)设a是群G中唯一的一个2阶元,证明:对任意G中元素x,均有ax=xa。

练习2:有限群中阶大于2的元素一定是偶数个;从而偶数阶群中一定有2阶元素。


二、循环群

接下来我们考虑由a的所有幂次构成的集合,根据我们开头写的幂的运算规则,很容易验证这些元素构成一个群。这是一个比较简单的群,其结构我们已经完全清楚了。

首先,给出生成的概念。假设M是群G里面的一个非空真子集,那么G中包含M的子群总是存在的,因为G本身就是一个包含M的子群。用<M>表示群G中包含M的一切子群的交集,之前的内容已经证明了任意个子群的交还是子群,所以<M>就是G中包含M的一个子群。并且<M>是包含M的最小子群。这和闭包的概念是类似的,一个集合的闭包是包含它的所有闭集的交集,也就是包含它的一个最小的闭集。<M>称为由群中元素M生成的子群,M叫做生成系。

定义3:若G=<a>,则称G为由a生成的一个循环群,并称a为G的一个生成元。

显然,由幂的运算规则,循环群一定是交换群。

运算用乘法表示时:

运算用加法表示时:

  1. 若循环群G=<a>是无限群,那么
    互不相同,否则的话,若
    ,则
    ,从而
    ,群G中最多有i-j个互不相同的元素,与G是无限群矛盾。
  2. 若循环群G=<a>是n阶有限群,则|a|必须是n,从而由
    知:
    . (
    n阶群G是循环群⇔G 有n阶元素。

例5:整数加群是一个无限循环群,生成元为1或-1.

例6:n次单位根群

是循环群,生成元为本原单位根。并且当(k,n)=1时,
均是本原单位根,也就是生成元。

有了上面两个例子,我们自然的想,对于下面的有限群,是不是同构的?

.
定理7(循环群的结构定理)设G=<a>。则:(1)若G是无限循环群,则
(2) 若G是n阶有限循环群,则
,(实际上我们更常用:
)

所以:无限循环群彼此同构(同构于整数加群);有限同阶的循环群彼此同构(同构于n 次单位根群或模n剩余类群);不同阶的循环群不同构。

定理7的证明:只需构造从群G到我们要证的群,例如整数加群的一个映射。证明这个映射是双射,并且是群同态,从而是群同构。
(1)令
. 显然是双射,且是同态,从而是同构:

(2)令
,显然是双射,且是同态,从而是同构:

由例5和例6,以及上面的循环群的结构定理,马上可以知道下面的结论:

定理8:(1)无限循环群有两个生成元; (2)n阶循环群有φ( n)个生成元。
证:(1)无限循环群<a>有两个生成元,即 与

(2)
是n阶循环群<a>的生成元,当且仅当

注:φ(n)为欧拉函数:在0和n之间,与n互素的整数的个数。欧拉函数在现在的RSA密码体制中有重要地位。

欧拉函数实际上很容易得到:例如最简单情况:

,p为素数。那与n互素的元素,实际上就是去掉和它不互素的元素。一共有多少个与它不互素的元素呢?看下图就知道了。

c78bd0ac418674a1861412634ae8767e.png
欧拉函数

欧拉是科学史上最多产的一位杰出的数学家。大家可以搜索一下欧拉辉煌的一生。可参考
https://zhuanlan.zhihu.com/p/148603379​zhuanlan.zhihu.com

循环群的结构我们已经清楚了,那下一步自然是要考虑其子结构。

定理9:循环群的子群仍是循环群.
定理9的证明:设H是循环群<a>的子群。若H={e}, 则H显然是循环群;若
则H中必含有
我们取一个最特殊的元素:取
为H中最小的正整数幂。往证
显然有

另一方面,对任意的
,由带余除法,
由m最小知r=0。从而
定理10:无限循环群有无限多个子群; 当< >为n阶循环群时,对n的每个正因数k, < >有且只有一个k阶子群
.
定理10的证明:(1)无限循环群有
无穷个互不相同的子群(低次幂不能被高次幂生成的子群包含)。(2)若
,则
是一个k阶子群。唯一性显然,若还有一个k阶子群
,则
,故
; ,均有k个元素,所以两者相等。
推论:n阶循环群有且仅有T(n)个子群。

练习3:证明:n阶有限循环群同构于模n剩余类群:

参考文献:杨子胥. 近世代数,第3版.高等教育出版社, 2011.

在pbc库中生成一个160乘法循环群可以按照以下步骤进行: 1. 首先,需要包含必要的头文件: ```c++ #include <pbc/pbc.h> ``` 2. 然后,需要定义一个`pairing_t`类型的对象,并初始化它,以及一个`element_t`类型的对象: ```c++ pairing_t pairing; element_t g; ``` ```c++ pairing_init_set_str(pairing, (char*) "type a\n\ p=177624190631167966601463387563402902455944089718345998606106149717787508678239772162940658386444934518118056809978733478010818235174237007619898297535368143298789351818183073904105608002278838372597414129181361076800042717936444252342764196121592296652239090610447286754574923977766543252368352044175489967396184413\n\ n=177624190631167966601463387563402902455944089718345998606106149717787508678239772162940658386444934518118056809978733478010818235174237007619898297535368143298789351818183073904105608002278838372597414129181361076800042717936444252342764196121592296652239090610447286754574923977766543252368352044175489967396183040\n\ g=2\n\ h=810897936571139301874008138386758491859559085301\n", 0); element_init_G1(g, pairing); ``` 在上面的代码中,我们使用`pairing_init_set_str()`函数初始化了一个`pairing`对象,并指定了一个160位的素数`p`、一个`p`同的整数`n`、一个生成元`g`一个随机数`h`。然后,我们使用`element_init_G1()`函数初始化了一个`element`对象`g`,并将其设置为生成元。 3. 最后,我们可以输出该乘法循环群数: ```c++ int r = element_order(g); std::cout << "Order of G1 group is " << r << std::endl; ``` 完整的示例代码如下: ```c++ #include <pbc/pbc.h> #include <iostream> int main() { pairing_t pairing; element_t g; // Initialize pairing and generator pairing_init_set_str(pairing, (char*) "type a\n\ p=177624190631167966601463387563402902455944089718345998606106149717787508678239772162940658386444934518118056809978733478010818235174237007619898297535368143298789351818183073904105608002278838372597414129181361076800042717936444252342764196121592296652239090610447286754574923977766543252368352044175489967396184413\n\ n=177624190631167966601463387563402902455944089718345998606106149717787508678239772162940658386444934518118056809978733478010818235174237007619898297535368143298789351818183073904105608002278838372597414129181361076800042717936444252342764196121592296652239090610447286754574923977766543252368352044175489967396183040\n\ g=2\n\ h=810897936571139301874008138386758491859559085301\n", 0); element_init_G1(g, pairing); // Get order of G1 group int r = element_order(g); std::cout << "Order of G1 group is " << r << std::endl; // Cleanup element_clear(g); pairing_clear(pairing); return 0; } ``` 需要注意的是,在使用`pairing_init_set_str()`函数时,需要将字符串中的换行符`\n`替换为实际的换行符,以及将字符串强制转换为`char*`类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值