离散数学实验三.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
离散数学实验三

实 验 报 告 (20 / 2015 学年 第 学期) 课程名称 实验名称 实验时间 年 月 日 指导单位 指导教师 学生姓名 班级学号 学院(系) 专 业 实 验 报 告 实验名称 指导教师 实验类型 实验学时 实验时间 实验目的和要求 实验环境(实验设备) CPU:Ghz 内存:1.00GB 软件: 操作系统:Windows XP SP3 编程软件:Visual C++ 6.0 实验原理及内容 核心代码: 1、先编写了两个函数分别求最小公约数和最大公倍数: //辗转相除法求最大公约数 int GYS(int a,int b){ int temp; if(ab){ temp=a; a=b; b=temp; } while(temp=a%b) { a=b; b=temp; } return b; } //根据最大公约数求最小公倍数 int GBS(int a,int b){ return a*b/GYS(a,b); } 2、求给定正整数的因子: a[0]=1;//第一个元素肯定是1 j=n=1;//j代表数组a[]的下标,n标记元素个数 for(i=2;i=m/2;i++){ if(m%i==0){//若是能被给定正整数整除,即加入数组a[] a[j++]=i;n++; } } if(m!=1){//最后把该正整数加入数组a[],1不重复加入 a[j]=m;n++; } 3、判断是否为有补格: flag=0;//1则为找到反例 for(i=0;in;i++){ for(j=n-1;j=0;j--){ if(GBS(a[i],a[j])==m GYS(a[i],a[j])==1){ couta[i]有补元素a[j]。\n; break; } if(j==0){ flag=1; } } } if(!flag){ cout因为所有成员都有补元素,所以这是一个有补格。\n; } 4、判断是否为分配格: flag=0;//已知肯定是分配格, 这里只是进一步确信,flag标记是否有反例 for(i=0;in;i++){ for(j=0;jn j!=i;j++){ for(k=0;kn k!=j j!=i;k++){ if(GYS(a[i],GBS(a[j],a[k]))!=GBS(GYS(a[i],a[j]),GYS(a[i],a[k]))){ flag=1; cout因为a[i]∧(a[j]∨a[k])!=(a[i]∧a[j])∨(a[i]∧a[k]),所以这不是一个布尔格。\n;//验证a∧(b∨c)==(a∧b)∨(a∧c) break; } if(GBS(a[i],GYS(a[j],a[k]))!=GYS(GBS(a[i],a[j]),GBS(a[i],a[k]))){ flag=1; cout因为a[i]∨(a[j]∧a[k])!=(a[i]∨a[j])∧(a[i]∨a[k]),所以这不是一个布尔格。\n;//验证a∨(b∧c)==(a∨b) ∧ (a∨c) break; } } if(flag)break; } if(flag)break; } if(!flag) cout因为所有成员都满足分配性,所以这是一个分配格。\n; 四、运行结果: 首先是输入界面: 然后输入24: 然后询问是否再次输入: 这次输入99: 特殊情况,若输入0或者负数: 此时会一直提示输入错误直到输入成功。 若输入1: 若输入非Y,则退出程序: 实 验 报 告 、实验小结五、指导教师评语 成 绩 批阅人 日 期 - 1 -

文档评论(0)

kabudou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档