离散数学上机---二元关系

**大学集合论与图论上机实验报告

课程名称: 集合论与图论

指导教师: 年级:2014 姓名: 上机实验成绩:

上机实验日期:2015-11-17 上机实验名称:二元关系传递判别、闭包方法 学号:[1**********]09

上机实验编号: 组号:

一、实验目的

1. 通过上机程序,进一步加深对二元关系传递性判别,自反闭包,对称闭包,传递闭包的理解。

2. 掌握传递性判别。

3. 学会用程序解决离散数学中的问题。

4. 增强我们编写程序的能力。

二、实验内容

实验1:二元关系传递性判别

实验2:有限集上给定关系的自反、对称和传递闭包

三、使用环境

Windows 7 vs2012

四、核心代码及调试过程

//实验一传递性

#include

using namespace std;

void main()

{

int n,i,j,k;

int m=0;

cout

cin>>n;

int a[20][20];

for (i=1;i

{

for (j=1;j

{

cout

cin>>a[i][j];

上机实验时间:两课时

} //输入R 矩阵

cout

for (i=1;i

{

for (j=1;j

{

cout}

cout

} //输出R 矩阵

for (i=1;i

{

for (j=1;j

{

if (a[i][j]!=0)

{

for (k=1;k

{

if (a[i][k]

}

}

}

}

}

if (m==0) cout

else cout

}

//实验2:

//1)自反闭包

#include

using namespace std;

void main()

{

int n,i,j;

cout

cin>>n;

int a[20][20];

for (i=1;i

{

for (j=1;j

{

cout

cin>>a[i][j];

}

}

cout

for (i=1;i

{

for (j=1;j

{

cout{

cout

}

for (i=1;i

for (j=1;j

{

if (a[i][j]!=0)

{

a[i][i]=1;

a[j][j]=1; }

}

}

cout

for (i=1;i

{

for (j=1;j

{

cout}

cout

}

}

//2)对称闭包

#include

using namespace std;

void main()

{

int n,i,j;

cout

cin>>n;

int a[20][20];

for (i=1;i

{

for (j=1;j

{

cout

cin>>a[i][j];

}

}

cout

for (i=1;i

{

for (j=1;j

{

cout}

cout

}

for (i=1;i

{

for (j=1;j

{

if (a[i][j]!=0)

{

a[j][i]=1; }

}

}

cout

for (i=1;i

{

for (j=1;j

{

cout}

cout

}

}

//3)传递闭包

#include

using namespace std;

void main()

{

int n,i,j,k;

int m=0;

cout

cin>>n;

int a[20][20];

for (i=1;i

{

for (j=1;j

{

cout

cin>>a[i][j];

}

}

cout

for (i=1;i

{

for (j=1;j

{

cout}

cout

}

for (j=1;j

{

for (i=1;i

{

if (a[i][j]==1)

{

for (k=1;k

{

a[i][k]=a[i][k]+a[j][k];

if (a[i][k]==2) a[i][k]=1;

}

}

}

}

cout

for (i=1;i

{

for (j=1;j

{

cout}

cout

}

}

实验1:

实验2:

1) 自反闭包

2) 对称闭包

3)传递闭包

五、总结

通过这次的实验,使我明白了,平日里学习不能浅尝辄止,必须要知道它的方法。做这次实验前我以为我对这块知识已经很熟了,但实际做的时候,发现我还是不是特别懂,必须要反复看书。其次,让我知道了,我平时学的数学知识可以很好的跟计算机结合,让我对程序设计有了更好的认识。

**大学集合论与图论上机实验报告

课程名称: 集合论与图论

指导教师: 年级:2014 姓名: 上机实验成绩:

上机实验日期:2015-11-17 上机实验名称:二元关系传递判别、闭包方法 学号:[1**********]09

上机实验编号: 组号:

一、实验目的

1. 通过上机程序,进一步加深对二元关系传递性判别,自反闭包,对称闭包,传递闭包的理解。

2. 掌握传递性判别。

3. 学会用程序解决离散数学中的问题。

4. 增强我们编写程序的能力。

二、实验内容

实验1:二元关系传递性判别

实验2:有限集上给定关系的自反、对称和传递闭包

三、使用环境

Windows 7 vs2012

四、核心代码及调试过程

//实验一传递性

#include

using namespace std;

void main()

{

int n,i,j,k;

int m=0;

cout

cin>>n;

int a[20][20];

for (i=1;i

{

for (j=1;j

{

cout

cin>>a[i][j];

上机实验时间:两课时

} //输入R 矩阵

cout

for (i=1;i

{

for (j=1;j

{

cout}

cout

} //输出R 矩阵

for (i=1;i

{

for (j=1;j

{

if (a[i][j]!=0)

{

for (k=1;k

{

if (a[i][k]

}

}

}

}

}

if (m==0) cout

else cout

}

//实验2:

//1)自反闭包

#include

using namespace std;

void main()

{

int n,i,j;

cout

cin>>n;

int a[20][20];

for (i=1;i

{

for (j=1;j

{

cout

cin>>a[i][j];

}

}

cout

for (i=1;i

{

for (j=1;j

{

cout{

cout

}

for (i=1;i

for (j=1;j

{

if (a[i][j]!=0)

{

a[i][i]=1;

a[j][j]=1; }

}

}

cout

for (i=1;i

{

for (j=1;j

{

cout}

cout

}

}

//2)对称闭包

#include

using namespace std;

void main()

{

int n,i,j;

cout

cin>>n;

int a[20][20];

for (i=1;i

{

for (j=1;j

{

cout

cin>>a[i][j];

}

}

cout

for (i=1;i

{

for (j=1;j

{

cout}

cout

}

for (i=1;i

{

for (j=1;j

{

if (a[i][j]!=0)

{

a[j][i]=1; }

}

}

cout

for (i=1;i

{

for (j=1;j

{

cout}

cout

}

}

//3)传递闭包

#include

using namespace std;

void main()

{

int n,i,j,k;

int m=0;

cout

cin>>n;

int a[20][20];

for (i=1;i

{

for (j=1;j

{

cout

cin>>a[i][j];

}

}

cout

for (i=1;i

{

for (j=1;j

{

cout}

cout

}

for (j=1;j

{

for (i=1;i

{

if (a[i][j]==1)

{

for (k=1;k

{

a[i][k]=a[i][k]+a[j][k];

if (a[i][k]==2) a[i][k]=1;

}

}

}

}

cout

for (i=1;i

{

for (j=1;j

{

cout}

cout

}

}

实验1:

实验2:

1) 自反闭包

2) 对称闭包

3)传递闭包

五、总结

通过这次的实验,使我明白了,平日里学习不能浅尝辄止,必须要知道它的方法。做这次实验前我以为我对这块知识已经很熟了,但实际做的时候,发现我还是不是特别懂,必须要反复看书。其次,让我知道了,我平时学的数学知识可以很好的跟计算机结合,让我对程序设计有了更好的认识。


相关文章

  • 离散数学答案
  • 2015春课件作业 第一部分 集合论 第一章 集合的基本概念和运算 1-1 设集合 A ={{2,3,4},5,1},下面命题为真是 A (选择题) [ A ] A .1 ∈A : B.2 ∈ A: C.3 ∈A : D.{3,2,1} ⊆ ...查看


  • 偏序关系哈斯图的一种求解方法
  • 偏序关系哈斯图的一种求解方法 邹又姣,冉占军,王晓峰 (西安理工大学应用数学系,陕西西安710048) 摘要 引入基本边和生成边的概念,并从偏序关系的特性人手,给出一种通过计算基本边和生成边来求解 偏序关系哈斯图的方法. 关键词 哈斯图:偏 ...查看


  • 电大离散数学集合论部分期末复习题
  • 一.单项选择题 1.若集合A ={ a,{a },{1,2}},则下列表述正确的是( ) . A .{a ,{a }}∈A B .{1,2}∉A C .{a }⊆A D .∅∈A 正确答案:C 2.若集合A ={1,2},B ={1,2,{ ...查看


  • 高等数学教学大纲
  • <高等数学>课程教学大纲 一.课程基本情况 开课单位:数理系 课程编码:B080101 适应专业:高职高专工程类专业 修课方式:必修 总学时:110学时 考核方式:考试 教 材:侯风波 <高等数学(第二版) > 高等 ...查看


  • 11-12下理工科高数A考试题
  • 对离散数学的初步理解 姓名:刘显荣 专业班级:软件1班 学号:10 离散数学的作用: <离散数学>是以一切离散量为研究对象的一门学科,包括数理逻辑.关系代数.罔论.集合论等多方面内容.这门学科在计算机科学的发展和研究中起着重大的 ...查看


  • 实验一序列`卷积运算
  • 实验一 离散时间信号分析 一.实验目的 1.掌握各种常用的序列,理解其数学表达式和波形表示. 2.掌握在计算机中生成及绘制数字信号波形的方法. 3.掌握序列的相加.相乘.移位.反褶等基本运算及计算机实现与作用. 4.掌握线性卷积软件实现的方 ...查看


  • 高中数学目录
  • 新课标高中数学 高一上:必修1.必修4 高一下:必修5,必修2 高二上:必修3,选修2-1 高二下:选修2-2,选修2-3,选修4-4,选修4-5 必修一 第一章 集合与函数概念 1.1 集合 1.2 函数及其表示 1.3 函数的基本性质 ...查看


  • 高中数学公式口诀
  • 高中数学公式口诀 一.<集合与函数> 内容子交并补集,还有幂指对函数.性质奇偶与增减,观察图象最明显. 复合函数式出现,性质乘法法则辨,若要详细证明它,还须将那定义抓. 指数与对数函数,两者互为反函数.底数非1的正数,1两边增减 ...查看


  • 离散数学期末考试试题(配答案) 1
  • 广东技术师范学院 模拟试题 科 目:离散数学 考试形式:闭卷 考试时间: 120 分钟 系别.班级: 姓名: 学号: 一.填空题(每小题2分,共10分) 1. 谓词公式∀xP (x ) → P(x)∨Q(y) __________. ∃xQ ...查看


热门内容