合肥工业大学离散数学实验报告2.docx

上传人:b****7 文档编号:10342188 上传时间:2023-02-10 格式:DOCX 页数:10 大小:68.19KB
下载 相关 举报
合肥工业大学离散数学实验报告2.docx_第1页
第1页 / 共10页
合肥工业大学离散数学实验报告2.docx_第2页
第2页 / 共10页
合肥工业大学离散数学实验报告2.docx_第3页
第3页 / 共10页
合肥工业大学离散数学实验报告2.docx_第4页
第4页 / 共10页
合肥工业大学离散数学实验报告2.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

合肥工业大学离散数学实验报告2.docx

《合肥工业大学离散数学实验报告2.docx》由会员分享,可在线阅读,更多相关《合肥工业大学离散数学实验报告2.docx(10页珍藏版)》请在冰豆网上搜索。

合肥工业大学离散数学实验报告2.docx

合肥工业大学离散数学实验报告2

 

实验二:

逻辑运算与闭包运算求解

 

姓名:

李亚鸣

学号:

2014211590

班级:

计算机科学与技术14-1班

实验地点:

三号实验楼4号机房

实验时间:

2015年10月24日

1实验目的和要求

实验目的:

(1)通过补充代码,完成基本逻辑运算的程序,加深对逻辑运算的理解。

(2)通过补充待完善的MFC程序,添加核心warshall算法部分,加强对闭包运算的求解的理解,同时对warshall算法加深理解。

实验要求:

(1)在luojiyuns.cpp文件中补充And(),Or(),Not(),Xor(),Single_condition(),Doublbe_condition()以实现基本逻辑运算。

(2)warshallDlg.cpp文件中的CWarshallDlg:

:

OnCalculate()函数中补充warshall算法

(3)在待完善的MFC代码上补充warshall算法的核心部分,并在图形上实现。

2实验环境和工具

VisualC++6.0

 

3实验结果

3.1算法流程图

3.2程序核心代码

(1)

/****************************************************

//该函数用于进行逻辑与运算

//val_one和val_two分别为参与运算的逻辑值

//调用twovalue_Judge函数检测是否符合输入要求,然后进行

//逻辑运算并返回运算结果

*****************************************************/

intluoji:

:

And(intval_one,intval_two)

{

//intjud;

if(twovalue_Judge(val_one,val_two))

{

returnval_one==1&&val_two==1;

}

else

{

Output();

return2;

}

cout<<"\n\n";

}

/****************************************************

//该函数用于进行逻辑或运算

//val_one和val_two分别为要进行计算逻辑值

//调用twovalue_Judge函数检测是否符合输入要求,然后进行

//逻辑运算并返回运算结果

*****************************************************/

intluoji:

:

Or(intval_one,intval_two)

{

//intjud;

if(twovalue_Judge(val_one,val_two))

{

returnval_one==1||val_two==1;

}

else

{

Output();

return2;

}

cout<<"\n\n";

}

/****************************************************

//该函数用于进行逻辑非运算

//val_one为要进行计算的逻辑值

//调用onevalue_Judge函数检测是否符合输入要求,然后进行

//逻辑运算并返回运算结果

*****************************************************/

intluoji:

:

Not(intval_one)

{

//intjud;

if(onevalue_Judge(val_one))

{

returnval_one==0;

}

else

{

Output();

return2;

}

cout<<"\n\n";

}

/****************************************************

//该函数用于进行逻辑异或运算

//val_one和val_two分别为要进行计算逻辑值

//调用twovalue_Judge函数检测是否符合输入要求,然后进行

//逻辑运算并返回运算结果

*****************************************************/

intluoji:

:

Xor(intval_one,intval_two)

{

//intjud;

if(twovalue_Judge(val_one,val_two))

{

returnval_one^val_two;

}

else

{

Output();

return2;

}

cout<<"\n\n";

}

/****************************************************

//该函数用于进行逻辑单条件运算

//val_one和val_two分别为要进行计算逻辑值

*****************************************************/

intluoji:

:

Single_condition(intval_one,intval_two)

{

//intjud;

if(twovalue_Judge(val_one,val_two))

{

returnval_one==1&&val_two==0;

}

else

{

Output();

return2;

}

cout<<"\n\n";

}

/****************************************************

//该函数用于进行逻辑双条件运算

//val_one和val_two分别为要进行计算逻辑值

*****************************************************/

intluoji:

:

Double_condition(intval_one,intval_two)

{

//intjud;

if(twovalue_Judge(val_one,val_two))

{

returnval_one==0&&val_two==0;

}

else

{

Output();

return2;

}

cout<<"\n\n";

}

(4)

//以下语句段使用warshall方法改变矩阵中的值以帮助求解传递闭包

//需要用到的矩阵的行、列值存储在变量dim中,矩阵中各个位置上的对应

//值存储在two_mat[][]数组中

//请在此添加warshall算法代码

intj,k;

int**temp=newint*[dim];//定义二维动态数组

for(i=0;i

temp[i]=newint[dim];

for(k=0;k

{

for(i=0;i

{

for(j=0;j

{

//if(two_mat[k][i]&&(two_mat[k][j]||two_mat[j][i]))two_mat[k][i]=1;

temp[i][j]=(two_mat[i][j])||(two_mat[i][k]&two_mat[k][j]);

}

}

for(i=0;i

for(j=0;j

two_mat[i][j]=temp[i][j];

}

3.3运行结果

 

3.4运行结果分析

对基本逻辑运算,用了几个简单的例子进行检测,运行结果都正确

对warshall算法也用了一个4X4的矩阵作为例子进行检测,运算结果正确。

实验心得

基本逻辑运算的难度不是很大,就是运用C++进行运算即可。

Warshall算法给我们提供了一个求二元关系传递闭包的高效方法。

综合现代计算机技术,利用Warshall算法我们可轻松的求出一个二元关系的可传递闭包。

Warshall算法类似于求图中每对顶点间最短路径的Floyd算法。

其实,用Floyd算法也能求关系的传递闭包,方法为令关系R的关系图G中的每条弧的权值都为1,这样得一有向网G1,设G1的邻接矩阵为D(-1)(若vi无自回路,则D(-1)(i,i)=∞),对G1用Floyd算法求其每对顶点间最短路径,得结果矩阵D(n-1)。

因若G中vi与vj连通,当且仅当D(n-1)[i,j]≠∞,故将矩阵D中的∞都改为0,其它值都改为1,得矩阵A,则矩阵A即为t(R)的关系矩阵。

Floyd算法和Warshall算法的时间复杂度都为O(n3),但明显用Floyd算法求关系的传递闭包绕了弯子。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1