群、循环群、交换群

2023-10-17 18:12
文章标签 交换 循环群

本文主要是介绍群、循环群、交换群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一个群(Group)是一个代数结构,它包含了一个集合以及一个在这个集合上定义的二元运算,满足以下四个主要性质。

  • 封闭性:对于群中的任意两个元素 a 和 b,通过群的二元运算,它们的组合 a * b 也必须属于该群。换句话说,运算结果不会使元素离开群。

  • 结合性:群中的二元运算是结合的,即对于任意元素 a、b 和 c,(a * b) * c = a * (b * c)。

  • 单位元素:群中存在一个特定的元素 e,称为单位元素,它满足对于群中的任何元素 a,e * a = a * e = a。

  • 逆元素:对于群中的每个元素 a,必须存在一个逆元素 a-1,使得 a * a-1 = a-1 * a = e,其中 e 是单位元素。

群的阶:群中元素个数称为群G的阶,记为|G|

群内元素a的阶(有时称为周期):使得ak = e成立的最小正整数k为元素a的阶(其中的e为这个群的单位元素)。若k不存在,则称a的阶数为无穷大。有限群的所有元素都有有限阶(证明)。

循环群

循环群是一种特殊的群,其元素由一个生成元重复作用而生成。具体来说,如果群G中存在一个元素g可以通过重复的使用二元运算(通常是乘法或加法)生成 G 中的所有元素,则群G就是循环群,元素g称为生成元。

形式化的,设(G,·)为一个群,若存在一个元素 g ∈ G,使得 G = < g > = { gk | k ∈ Z },则(G,·)形成一个循环群。群G内任意一个元素所生成的群都是循环群,而且是G的子群。

例如:模8加法群,{0,1,2,3,4,5,6,7},其中0是单位元,生成元为1,3,5,7

交换群

交换群,也被称为可交换群或阿贝尔群,是一个满足交换性质的群。交换性质意味着群中的任何两个元素在群运算下都可以交换位置,即对于所有的元素 a 和 b,a * b = b * a,其中 * 表示群运算。

经典的例子包括整数集合上的加法群(Z, +),实数集合上的加法群(R,+),以及整数集合上的乘法群(Z,*)其中 * 表示乘法。这些群都是交换群,因为它们的运算满足交换性质。

这篇关于群、循环群、交换群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/227108

相关文章

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

【数据结构入门】排序算法之交换排序与归并排序

前言         在前一篇博客,我们学习了排序算法中的插入排序和选择排序,接下来我们将继续探索交换排序与归并排序,这两个排序都是重头戏,让我们接着往下看。  一、交换排序 1.1 冒泡排序 冒泡排序是一种简单的排序算法。 1.1.1 基本思想 它的基本思想是通过相邻元素的比较和交换,让较大的元素逐渐向右移动,从而将最大的元素移动到最右边。 动画演示: 1.1.2 具体步

不设临时变量交换a,b的值

常规的做法: int tmp = a; a = b; b = tmp; 不设中间变量的方法: a = a + b; b = a - b; a = a - b;

交换两个变量数值的3种方法

前言:交换两个数值可不是"a = b,b = a"。这样做的话,a先等于了b的值;当“b = a”后,因为此时a已经等于b的值了,这个语句就相当于执行了b = b。最终的数值关系就成了a == b,b == b。 下面教给大家3种交换变量数值的方法: 目录 1. 中介法 2. 消和法 3. 异或法 4. 总结 1. 中介法 中介法(又称 临时变量法 或 酱油法),其中心

用异或交换两个整数的陷阱

前面我们谈到了,可用通过异或运算交换两个数,而不需要任何的中间变量。 如下面: void exchange(int &a, int &b) {     a ^= b;     b ^= a;     a ^= b; } 然而,这里面却存在着一个非常隐蔽的陷阱。 通常我们在对数组进行操作的时候,会交换数组中的两个元素,如exchang(&a[i], &b[j]),

常见的交换变量的三种方法

常见的交换变量的三种方法     在项目中,两个变量之间交换位置在常见不过了,如进行排序。     下面说下常见的三中变量交换模式。 1、定义中间变量 #include <stdio.h>int main(){int a=9, b=3; //方法一://交换两个变量值的常规做法int tmp=a;a=b;b=tmp;printf("a=%d b=%d\n",a,b);

Leetcode面试经典题-24.两两交换链表中的节点

解法都在代码里,不懂就留言或者私信 这里先写一个递归的解,如果后面有时间,我再写个迭代的 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val =

iOS——方法交换Method Swizzing

什么是方法交换 Method Swizzing是发生在运行时的,主要用于在运行时将两个Method进行交换,我们可以将Method Swizzling代码写到任何地方,但是只有在这段Method Swilzzling代码执行完毕之后互换才起作用。 利用Objective-C Runtimee的动态绑定特性,将一个方法的实现与另一个方法的实现进行交换。交换两个方法的实现一般写在分类的load方法里

java 线程间交换数据的Exchanger

字符串     import java.util.concurrent.Exchanger;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class ExchangerTest {private static final Exchanger<String>

016 交换网络的弹性设计与高可用性

引言 交换网络的弹性设计和高可用性对于保证企业网络的稳定运行至关重要。通过冗余架构、快速故障切换和优化配置,网络管理员可以显著提高交换网络的可靠性,减少宕机时间。本篇博文将探讨如何设计弹性的交换网络,并提供华为设备的实际配置示例。 1. 弹性交换架构设计:环网与冗余链路 在企业网络中,环网和冗余链路是实现弹性设计的基本手段。通过在关键网络节点之间建立冗余链路,网络可以在某一链路或设备发生故障