C语言---离散数学实验--群的判定(已更新)

2023-10-29

群的判定

实验目的

掌握群的判定方法

实验内容

输入代数系统(A,)的集合A和运算的运算表,判断(A,*)是否是群

实验原理和方法

(1)用一维数组a[n]存贮集合A。
(2)用二维数组op[n][n]存贮运算表。
(3)根据群的定义,代数系统(A,)若为群,除运算表已表明运算封闭外,还应该满足下列三个条件:*运算可结合、有幺元e、 A中任何元素都有逆元。

算法提示

运算可结合

	for(i=0;i<N;i++) 
		for(j=0;j<N;j++) 
			for(k=0;k<N;k++) 
			{ 
				for(l=0;l<N;l++) 
				{ 
					if(op[i][j]==a[l]) x=l;/*op[i][j] 代表a*b*/ 
					if(op[j][k]==a[l]) y=l;/*op[j][k] 代表b*c*/ 
				} 
				if(op[i][y]!=op[x][k])/*op[i][y]代表a*(b*c)*/ 
				{ 
					printf("(%d*%d)*%d=%d,%d*(%d*%d)=%d,运算是不可结合!\n", 
a[i],a[j],a[k],op[x][k],a[i],a[j],a[k],op[i][y]); 
					flag=0;/*不满足结合性*/ 
				} 
			} 
	if(flag) printf("运算是可结合!\n");

有幺元

flag=0; 
	for(i=0;i<N;i++) 
	{ 
		for(j=0;j<N;j++) 
			if(op[i][j]!=a[j] || op[j][i]!=a[j]) break; 
		if(j==N)  
		{ 
			printf("群有幺元%d!\n",a[i]);  
			e=a[i]; 
			flag=1; break; 
		} 
	}		 
	if(!flag) printf("群没有幺元!\n"); 

A中任何元素都有逆元

flag=1; 
	for(i=0;i<N;i++) 
	{ 
		for(j=0;j<N;j++) 
			if(op[i][j]==e && op[j][i]==e) break;/*e是幺元*/ 
		if(j==N)  
			{ 
				flag=0;	 
				printf("A中元素%d没有逆元!\n",a[j]); 
		} 
	} 
	if(flag) printf("A中任何元素都有逆元!\n");

源码实现

#include <stdio.h>

#define N 5

int main()
{
	int a[N];
	int i, j;
	for (i = 0; i < N; i++)
	{
		printf("Number %d :", i + 1);
		scanf("%d", &a[i]);
	}
	int op[N][N];
	int e;
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			op[i][j] = a[i] * a[j];
		}
	}
	int  flag = 1;
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			for (int k = 0; k < N; k++)
			{
				if (op[i][j] * a[k] != a[i] * op[j][k])
				{
					printf("运算是不可结合\n");
					flag = 0;
				}
			}
		}
	}
	if (flag)
	{
		printf("运算是可结合\n");
	}
	flag = 0;
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			if (op[i][j] != a[j] || op[j][i] != a[j])
			{
				break;
			}
		}
		if (j == N)
		{
			printf("群有幺元%d\n", a[i]);
			e = a[i];
			flag = 1;
			break;
		}
	}
	if (!flag)
	{
		printf("群没有幺元\n");
	}
	flag = 1;
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			if (op[i][j] == e && op[j][i] == e)
			{
				break;
			}
		}
		if (j == N - 1)
		{
			flag = 0;
			printf("A中元素%d没有逆元\n", a[j]);
		}
	}
	if (flag)
	{
		printf("A中任何元素都有逆元\n");
	}
}

下面代码和上面是一样的

#include <stdio.h>

#define N 5

int main()
{
	int a[N];
	int i, j;
	for (i = 0; i < N; i++)
	{
		printf("Number %d :", i + 1);
		scanf("%d", &a[i]);
	}
	int op[N][N];
	int e;
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			op[i][j] = a[i] * a[j];
		}
	}
	int  flag = 1;
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			for (int k = 0; k < N; k++)
			{
				if (op[i][j] * a[k] != a[i] * op[j][k])
				{
					printf("运算是不可结合\n");
					flag = 0;
				}
			}
		}
	}
	if (flag)
	{
		printf("运算是可结合\n");
	}
	flag = 0;
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			if (op[i][j] != a[j] || op[j][i] != a[j])
			{
				break;
			}
		}
		if (j == N)
		{
			printf("群有幺元%d\n", a[i]);
			e = a[i];
			flag = 1;
			break;
		}
	}
	if (!flag)
	{
		printf("群没有幺元\n");
	}
	flag = 1;
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			if (op[i][j] == e && op[j][i] == e)
			{
				break;
			}
		}
		if (j == N - 1)
		{
			flag = 0;
			printf("A中元素%d没有逆元\n", a[j]);
		}
	}
	if (flag)
	{
		printf("A中任何元素都有逆元\n");
	}
}

#include <stdio.h>

#define N 5

int main()
{
	int a[N];
	int i, j;
	for (i = 0; i < N; i++)
	{
		printf("Number %d :", i + 1);
		scanf("%d", &a[i]);
	}
	int op[N][N];
	int e;
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			op[i][j] = a[i] * a[j];
		}
	}
	int  flag = 1;
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			for (int k = 0; k < N; k++)
			{
				if (op[i][j] * a[k] != a[i] * op[j][k])
				{
					printf("运算是不可结合\n");
					flag = 0;
				}
			}
		}
	}
	if (flag)
	{
		printf("运算是可结合\n");
	}
	flag = 0;
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			if (op[i][j] != a[j] || op[j][i] != a[j])
			{
				break;
			}
		}
		if (j == N)
		{
			printf("群有幺元%d\n", a[i]);
			e = a[i];
			flag = 1;
			break;
		}
	}
	if (!flag)
	{
		printf("群没有幺元\n");
	}
	flag = 1;
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			if (op[i][j] == e && op[j][i] == e)
			{
				break;
			}
		}
		if (j == N - 1)
		{
			flag = 0;
			printf("A中元素%d没有逆元\n", a[j]);
		}
	}
	if (flag)
	{
		printf("A中任何元素都有逆元\n");
	}
}

gitee链接及下载链接

https://gitee.com/zhaobohan/c_language_exercises/blob/master/%E7%BE%A4%E7%9A%84%E5%88%A4%E5%AE%9A/%E7%BE%A4%E7%9A%84%E5%88%A4%E5%AE%9A/test.c

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言---离散数学实验--群的判定(已更新) 的相关文章

  • Java垃圾回收机制

    一 如何确定某个对象是 垃圾 既然垃圾收集器的任务是回收垃圾对象所占的空间供新的对象使用 那么垃圾收集器如何确定某个对象是 垃圾 以及通过什么方法判断一个对象可以被回收了 在java中是通过引用来和对象进行关联的 也就是说如果要操作对象 必
  • 开放本地数据库局域网共享

    1 先进去我们的本地数据库 mysql u root p 进入我们的数据库 会提示让你输入密码 输入你本地的数据库密码 然后进入 2 use mysql 自带的数据库 select host user from user 3 你可以看到 每
  • Ubuntu下安装Kdevelop IDE和使用教程

    一 在终端输入下面指令安装Kdevelop 要连接网络 先安装cmake sudo apt get install cmake 安装kdevelop sudo apt get install kdevelop 二 新建工程 安装好之后 在搜
  • Tomcat配置问题:Warning:The selected directory is not a TomEE home

    问题描述 在使用IDEA进行Tomcat配置时 发生如下警告 提示 因为是警告就没太在意 配置完成后进行启动 发现变成了 错误 原因分析 产生这个的原因其实是因为自己的一个小疏忽 在配置Tomcat的时候 选择了TomEE Server 解

随机推荐

  • python爬虫实战(1)--爬取新闻数据

    想要每天看到新闻数据又不想占用太多时间去整理 萌生自己抓取新闻网站的想法 1 准备工作 使用python语言可以快速实现 调用BeautifulSoup包里面的方法 安装BeautifulSoup pip install Beautiful
  • 责任链模式二

    本文以创建商品案例来讲解责任链模式 假设创建商品逻辑分为 1 创建商品 2 检验商品 3 保存商品 第二步中校验商品又分为多种情况 必填字段校验 规格校验 价格校验 库存校验等等 伪代码如下 public Result createProc
  • 值不值

    Hi 我是小小 今天是本周的第五篇 主要内容是jpa的入门 现在开始今日内容 数据准备 数据库使用的数据表设计如下 建表语句如下 SET NAMES utf8mb4 SET FOREIGN KEY CHECKS 0 Table struct
  • 初学Qt之--带参数的信号和槽的实现(入门级)

    初次接触Qt 由于只有C语言的基础 弄起来很是头疼 下面这个Qt带参数的信号与槽的实例仅供入门之用 高手免观 Qt 4 4 0 实现 废话不多说 直接上代码 MyMainWindows h ifndef MYMAINWINDOWS H de
  • MATLAB实现TopSis优劣解距离法——分析《世界征服者3》将领排名

    问题背景 世界征服者3游戏中有150 的将领角色 每个将领都有自己的兵种优势 军阶 技能等不同的属性 如何教务客观 综合全面地选拔出其中排名前50的将领 基于TOPSIS优劣解距离法以及聚类算法 给出大家较为客观的排名 一 问题描述 在世界
  • 自定义TableViewCell的使用方法

    新建TableViewCell类 继承父类为UITableViewCell 1 1 TableCell h import
  • Android 内存优化技术点

    致敬前辈 砥砺前行
  • ir2104s的自举电容_IR2104s半桥驱动芯片使用经验及注意事项

    多次使用IR2104s 每次的调试都有种让人吐血的冲动 现在将使用过程遇到的错误给大家分享一下 方便大家找到思路 一 自举电容部分 关键 1 听说自举电路必须要安装场效应管 于是我在使用过程中 安装了只半桥的高端场效应管 结果 高端驱动HO
  • 被广泛应用的水分含量传感器工作原理

    水分含量传感器由电源模块 变送模块 漂零及温度补偿模块 数据处理模块等组成 采用FDR频域法 可以实时准确测定各种土壤不同剖面的水分含量 传感器内置信号采样及放大 零点漂移及温度补偿功能 用户接口简洁 方便 外型小巧轻便 便于携带和连接 功
  • 招聘方眼里的猎聘和Boss直聘直观对比

    最近为了招聘 公司HR给开通了猎聘和Boss直聘的账户 对比两个招聘渠道的使用 有着截然不同的效果 功能上 两者相差不多 简历上 相对来说猎聘的更高端一些 可能有 猎 的字眼 来看我们发布的职位的不少是海归 不过对我们纯本土的企业来说 英语
  • 基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平教程

    详情点击链接 基于ArcGIS ENVI InVEST FRAGSTATS等多技术融合提升环境 生态 水文 土地 土壤 农业 大气等领域的数据分析能力与项目科研水平教程 一 空间数据获取与制图 1 1 软件安装与应用 1 2 空间数据 1
  • 【django】APPEND_SLASH 路由末尾的斜杠问题

    url路由末尾是否加斜杠的规范 加斜杠 表示是目录 不加斜杠 表示是文件 在django中的setting中 默认APPEND SLASH True 即当请求的路由末尾没有加斜杠 如果尝试加上斜杠后 能在后端路由里匹配到 则会自动加上斜杠
  • 2023/09/15 qt day1

    代码实现图形化界面 include denglu h include ui denglu h include
  • 题13:字符串匹配之KMP

    kmp算法是一种改进的字符串匹配算法 由D E Knuth与V R Pratt和J H Morris同时发现 因此人们称它为克努特 莫里斯 普拉特操作 简称KMP算法 KMP算法的关键是根据给定的模式串W1 m 定义一个next函数 nex
  • 基础算法题——牛牛种花(高效、降维、离散化、树状数组)

    牛牛种花 题目链接 这道题还是挺有意思的 呵呵 解题思路 高效 利用结构体存储数据 struct node int x y id a N lt lt 1 利用 id 来记录每个节点是查询或是种树 若为查询则给予编号 从 1 开始编号 否则置
  • Python Flask 轻量级的Web应用程序框架介绍

    一 概述 Python Flask是一个轻量级的Web应用程序框架 它是使用Python编写的 用于快速开发Web应用程序和API 它的设计理念是简单 易用和可扩展 以下是Python Flask的一些主要特点 轻量级 Flask没有多余的
  • SeleniumLibrary4.5.0 关键字详解(十一)

    SeleniumLibrary4 5 0 关键字详解 十一 库版本 4 5 0 库范围 全局 命名参数 受支持 简介 SeleniumLibrary是Robot Framework的Web测试库 本文档说明了如何使用SeleniumLibr
  • Qt学习笔记--窗口部件(Widget)

    1 Widget是GUI编程的基本组件 2 每个Widget可以放置在一个UI内或者作为一个独立的窗口 3 每种类型的组件都是Widget的子类 Widget继承QObject 4 每个Widget在构造时可以指定它的父对象 这样可以保证它
  • 【Vue3+Ts project】认识 Websocket 以及 socket.io 库

    目录 Websocket socket io Socket iO 事件名总结 Socket IO 方法总结 Websocket 作用 WebSocket 仍然提供实时的双向通信功能 使用Vue3 应用程序能够与服务器进行实时数据交换 降低延
  • C语言---离散数学实验--群的判定(已更新)

    文章目录 群的判定 实验目的 实验内容 实验原理和方法 算法提示 运算可结合 有幺元 A中任何元素都有逆元 源码实现 gitee链接及下载链接 群的判定 实验目的 掌握群的判定方法 实验内容 输入代数系统 A 的集合A和运算的运算表 判断