离散数学上机实验报告Word格式文档下载.docx

上传人:b****5 文档编号:17266639 上传时间:2022-11-30 格式:DOCX 页数:18 大小:642.55KB
下载 相关 举报
离散数学上机实验报告Word格式文档下载.docx_第1页
第1页 / 共18页
离散数学上机实验报告Word格式文档下载.docx_第2页
第2页 / 共18页
离散数学上机实验报告Word格式文档下载.docx_第3页
第3页 / 共18页
离散数学上机实验报告Word格式文档下载.docx_第4页
第4页 / 共18页
离散数学上机实验报告Word格式文档下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

离散数学上机实验报告Word格式文档下载.docx

《离散数学上机实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《离散数学上机实验报告Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。

离散数学上机实验报告Word格式文档下载.docx

{

charp,q,t;

intp1,q1;

cout<

<

"

输入p,q的真值(F或T)"

endl;

cin>

>

p>

q;

if(p=='

F'

p1=0;

else

p1=1;

if(q=='

q1=0;

q1=1;

//下面进行为运算

if(p1|q1)

t='

T'

;

p析取q为"

t<

if(p1&

q1)

p和取q为"

if((!

p1)|q1)

|

p条件q为"

if(p1==q1)

·

p双条件q为"

}

实验二关系闭包计算

从键盘输入一个关系的关系矩阵,计算其自反闭包、对称闭包和传递闭包,传递闭包要求使用两种算法,即R+和Warshall算法。

实验源程序运行结果如下:

#include<

stdio.h>

inthe(int,int);

inta[100][100],b[100][100],c[100][100],d[100][100],I[100][100],i,j,k,n,m,p,q,t;

printf("

请输入关系矩阵的阶数\n"

);

scanf("

%d"

&

n);

请输入此关系矩阵\n"

for(i=0;

i<

n;

i++)

for(j=0;

j<

j++)

scanf("

a[i][j]);

选择1计算自反闭包...\n选择2计算对称闭包...\n选择3用R+计算传递闭包...\n选择4用washall计算传递闭包...\n计算结束后选择0退出\n"

t);

switch(t)

{

case1:

{

for(i=0;

{

for(j=0;

{

:

if(i==j)

I[i][j]=1;

elseI[i][j]=0;

}

}

-

b[i][j]=he(a[i][j],I[i][j]),printf("

%4d"

b[i][j]);

printf("

\n"

};

break;

case2:

for(i=0;

~

for(j=0;

b[j][i]=a[i][j];

printf("

对称闭包矩阵为\n"

c[i][j]=he(a[i][j],b[i][j]),printf("

c[i][j]);

printf("

}

case3:

for(j=0;

{

c[i][j]=a[i][j];

d[i][j]=a[i][j];

b[i][j]=0;

for(m=0;

m<

m++)

for(k=0;

k<

k++)

for(j=0;

b[i][k]=b[i][k]||(c[i][j]*a[j][k]);

}

}

for(p=0;

p<

p++)

for(q=0;

q<

q++)

c[p][q]=b[p][q];

d[p][q]=d[p][q]||b[p][q];

b[p][q]=0;

矩阵的传递闭包为\n"

!

printf("

d[i][j]);

printf("

};

case4:

for(k=0;

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

for(i=0;

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

传递闭包为\n"

for(i=0;

a[i][j]);

default:

printf("

Error\n"

inthe(inta,intb)

intc;

if(a==0&

&

b==0)

c=0;

elsec=1;

returnc;

[

实验三计算两结点间长度为m的路的数目

从键盘输入图的邻接矩阵和一正整数m,计算结点两两之间长度为m的路的数目。

考虑有向图和无向图。

实现可达性矩阵。

inta[100][100],b[100][100],c[100][100],d[100][100],i,j,k,t,p,q,n,m;

请输入路的长度\n"

m);

]

c[i][j]=a[i][j];

b[i][j]=0;

for(t=0;

m-1;

t++)

for(k=0;

b[i][j]+=c[i][k]*a[k][j];

for(k=0,i=0;

k+=c[i][j];

结点两两之间长度为%d的路的数目为%d\n"

m,k);

d[p][q]+=c[p][q];

该关系矩阵的可达型矩阵为\n"

if(d[i][j]>

=1)d[i][j]=1;

elsed[i][j]=0;

\

实验四最优树的构造

从键盘输入一组权值,构造出对应的最优树,列出构造过程。

inta[100][100],d[100][100]={0};

inti,j,k,min,m,n,p;

intb[100][100]={0};

intc[100][100];

请输入邻接矩阵的阶数:

p);

p;

{printf("

请输入带权值矩阵的第%d行,用空格隔开:

i+1);

for(k=0;

p*p;

{min=100;

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

continue;

elseif(a[i][j]<

min)

{min=a[i][j];

m=i,n=j;

}

a[m][n]=a[n][m]=0;

if(b[m][n]==1||b[n][m]==1)

continue;

d[m][n]=d[n][m]=1;

b[i][j]=d[i][j];

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

b[j][k]=b[j][k]||b[i][k];

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

d[i][j]=c[i][j];

最小生成树的邻接矩阵为(带权值):

{for(j=0;

%d"

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

当前位置:首页 > 高中教育 > 初中教育

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

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