首页 离散数学上机实验报告

离散数学上机实验报告

举报
开通vip

离散数学上机实验报告离散数学实验报告姓名:学号:班级:离散数学实验报告实验一真值计算实验内容:从键盘输入两个命题P和Q的真值,求它们的合取、析取、条件和双条件的真值。用C语言实现。实验源程序和运行结果如下:#include""voidmain(){charp,q,t;intp1,q1;cout<<"输入p,q的真值(F或T)"<<endl;cin>>p>>q;if(p=='F')p1=0;elsep1=1;if(q=='F&...

离散数学上机实验报告
离散数学实验报告姓名:学号:班级:离散数学实验报告实验一真值计算实验 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 :从键盘输入两个命题P和Q的真值,求它们的合取、析取、条件和双条件的真值。用C语言实现。实验源程序和运行结果如下:#include""voidmain(){charp,q,t;intp1,q1;cout<<"输入p,q的真值(F或T)"<<endl;cin>>p>>q;if(p=='F')p1=0;elsep1=1;if(q=='F')q1=0;elseq1=1;.\n选择2计算对称闭包...\n选择3用R+计算传递闭包...\n选择4用washall计算传递闭包...\n计算结束后选择0退出\n");scanf("%d",&t);switch(t){case1:{for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j)I[i][j]=1;elseI[i][j]=0;}}for(i=0;i<n;i++){for(j=0;j<n;j++)b[i][j]=he(a[i][j],I[i][j]),printf("%4d",b[i][j]);printf("\n");}};break;case2:{for(i=0;i<n;i++){for(j=0;j<n;j++)b[j][i]=a[i][j];}printf("对称闭包矩阵为\n");for(i=0;i<n;i++){for(j=0;j<n;j++)c[i][j]=he(a[i][j],b[i][j]),printf("%4d",c[i][j]);printf("\n");}};break;case3:{for(i=0;i<n;i++)for(j=0;j<n;j++){c[i][j]=a[i][j];d[i][j]=a[i][j];b[i][j]=0;}for(m=0;m<n;m++){for(i=0;i<n;i++){for(k=0;k<n;k++){for(j=0;j<n;j++){b[i][k]=b[i][k]||(c[i][j]*a[j][k]);}}}for(p=0;p<n;p++){for(q=0;q<n;q++)c[p][q]=b[p][q];}for(p=0;p<n;p++){for(q=0;q<n;q++){d[p][q]=d[p][q]||b[p][q];b[p][q]=0;}}}printf("矩阵的传递闭包为\n");for(i=0;i<n;i++){for(j=0;j<n;j++){printf("%4d",d[i][j]);}printf("\n");}};break;case4:{for(j=0;j<n;j++){for(k=0;k<n;k++){if(a[k][j]==1){for(i=0;i<n;i++)a[k][i]=a[k][i]||a[j][i];}}}printf("传递闭包为\n");for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%4d",a[i][j]);printf("\n");}};break;default:printf("Error\n");}}inthe(inta,intb){intc;if(a==0&&b==0)c=0;elsec=1;returnc;}实验三计算两结点间长度为m的路的数目实验内容:从键盘输入图的邻接矩阵和一正整数m,计算结点两两之间长度为m的路的数目。考虑有向图和无向图。用C语言实现。实现可达性矩阵。实验源程序和运行结果如下:#include<>voidmain(){inta[100][100],b[100][100],c[100][100],d[100][100],i,j,k,t,p,q,n,m;printf("请输入关系矩阵的阶数\n");scanf("%d",&n);printf("请输入路的长度\n");scanf("%d",&m);printf("请输入此关系矩阵\n");for(i=0;i<n;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);c[i][j]=a[i][j];d[i][j]=a[i][j];b[i][j]=0;}}for(t=0;t<m-1;t++){for(i=0;i<n;i++){for(j=0;j<n;j++){for(k=0;k<n;k++)b[i][j]+=c[i][k]*a[k][j];}}for(p=0;p<n;p++){for(q=0;q<n;q++){c[p][q]=b[p][q];b[p][q]=0;}}}for(k=0,i=0;i<n;i++){for(j=0;j<n;j++)k+=c[i][j];}printf("结点两两之间长度为%d的路的数目为%d\n",m,k);for(t=0;t<n;t++){for(i=0;i<n;i++){for(j=0;j<n;j++){for(k=0;k<n;k++)b[i][j]+=c[i][k]*a[k][j];}}for(p=0;p<n;p++){for(q=0;q<n;q++){c[p][q]=b[p][q];b[p][q]=0;d[p][q]+=c[p][q];}}}printf("该关系矩阵的可达型矩阵为\n");for(i=0;i<n;i++){for(j=0;j<n;j++){if(d[i][j]>=1)d[i][j]=1;elsed[i][j]=0;printf("%4d",d[i][j]);}printf("\n");}}实验四最优树的构造实验内容:从键盘输入一组权值,构造出对应的最优树,列出构造过程。用C语言实现。实验源程序和运行结果如下:#include<>voidmain(){inta[100][100],d[100][100]={0};inti,j,k,min,m,n,p;intb[100][100]={0};intc[100][100];printf("请输入邻接矩阵的阶数:");scanf("%d",&p);for(i=0;i<p;i++){printf("请输入带权值矩阵的第%d行,用空格隔开:",i+1);for(j=0;j<p;j++)scanf("%d",&a[i][j]);}for(i=0;i<p;i++)for(j=0;j<p;j++)c[i][j]=a[i][j];for(k=0;k<p*p;k++){min=100;for(i=0;i<p;i++)for(j=0;j<p;j++){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;for(i=0;i<p;i++)for(j=0;j<p;j++)b[i][j]=d[i][j];for(i=0;i<p;i++)for(j=0;j<p;j++)if(b[j][i]==1)for(k=0;k<p;k++)b[j][k]=b[j][k]||b[i][k];}for(i=0;i<p;i++)for(j=0;j<p;j++)if(d[i][j]==1)d[i][j]=c[i][j];printf("最小生成树的邻接矩阵为(带权值):\n");for(i=0;i<p;i++){for(j=0;j<p;j++){printf("%d",d[i][j]);}printf("\n");}}
本文档为【离散数学上机实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
蓝蓝的天
暂无简介~
格式:doc
大小:741KB
软件:Word
页数:0
分类:高中英语
上传时间:2020-10-14
浏览量:7