离散数学实验指导(共7页).docx
精选优质文档-倾情为你奉上实验一 判断代数系统<G, *>性质的算法【实验目的】通过算法设计并编程实现判断代数系统是否满足相关性质,掌握代数系统中相关性质的定义,加深对代数系统的理解。【实验内容】输入代数系统<G, *>的集合G和*运算的运算表,判断<G, *>中的*运算是否是封闭的,可结合的,可交换的,等幂的,如果不满足请说明原因。其中,代数系统<G, *>中G为字母集合,G=a,b,c,。【实验原理和方法】(1) 用一维数组an 存储集合G。(2) 用二维数组opnn存储*的运算表。(3) 封闭的:对于A中任意元素x,y,都有x*yA。(4) 可结合的:对于A中任意元素x,y,z都有(x*y)*z=x*(y*z)。(5) 可交换的:对于A中任意元素x,y,都有x*y=y*x。(6) 等幂的:若对于A中任意元素x,都有x*x=x。【实验环境及工具】运行Windows 或Linux操作系统的PC机,任意软件开发语言C,C+,Java等及相应的开发环境。实验二 判断代数系统<G, *>是否为群【实验目的】通过算法设计并编程实现,掌握群的判定方法,加深对群的概念的理解。【实验内容】输入代数系统<G, *>的集合G和*运算的运算表,判断<G, *>是否是群,如果不是请说明原因。具体的,给定一个代数系统<G, *>,其中,代数系统<G, *>中G为数字集合,G=1,2,n,要求判断:(1) <G,* >是否为半群; (2) <G,*>是否为含幺半群;(3) <G,*>是否为群。【实验原理和方法】(1) 用一维数组an 存储集合G。(2) 用二维数组opnn存储*的运算表。(3) 半群:<S,*>是一个代数系统,S为非空集合,*是定义在S上的二元运算,*封闭,可结合。(4) 含幺半群:含有幺元的半群。(5) 群:每个元素都有逆元的含幺半群。【实验环境及工具】运行Windows 或Linux操作系统的PC机,任意软件开发语言C,C+,Java等及相应的开发环境。#include<iostream>using namespace std;int main() char a20,op2020; int x120,y120,z120; int num,f=0,b=0,c=0,d=0,e=0,n=0; cout<<"请输入所求代数系统中元素个数,以回车键结束"<<endl; cin>>num; cout<<"请输入数组anum,以回车键结束"<<endl; for(int i=0;i<num;i+) cin>>ai; cout<<"请输入运算表,以回车键结束"<<endl; for(i=0;i<num;i+) for(int j=0;j<num;j+) cin>>opij;for( int k=0;k<num;k+)for(int i=0;i<num;i+) for(int j=0;j<num;j+) if(opki=aj) b+; if(b=num*num) cout<<"满足封闭性。"<<endl; else cout<<"不满足封闭性。"<<endl; for( i=0;i<num;i+)for(int j=0;j<num;j+)for(int l=0;l<num;l+)for( int k=0;k<num;k+) d=0; if(opij=ak) d=1; break; if(d=0)x1n=i;y1n=j;z1n=l;n+;elsefor(int m=0;m<m;m+)e=0;if(opjl=am)e=1;break;if(e=0)x1n=i;y1n=j;z1n=l;n+; else if(opkl!=opim)x1n=i;y1n=j;z1n=l;n+;if(n>0)cout<<"不满足可结合性。"<<endl;elsecout<<"满足可结合性。"<<endl; for( i=0;i<num;i+) if(op0i=ai&&opi0=ai) c+; if(c=num) cout<<"满足可交换性。"<<endl; else cout<<"不满足可交换性。"<<endl;for( k=0;k<num;k+) if(opkk=ak) f=0; else f+; if(f=0) cout<<"满足等幂性。"<<endl; else cout<<"不满足等幂性。"<<endl; return 0;专心-专注-专业