《离散数学》
实验报告
学 院 软件学院
专 业 软件工程
指导教师 邹丽娜
学 号 10008118
姓 名 冯立勇
提交日期 20##-12-25
实验二关系的闭包运算
一、实验目的
熟悉关系的闭包运算,编程实现关系闭包运算算法。
一、实验内容
利用矩阵求解有限集上给定关系的自反、对称和传递闭包。
三. 实验过程
1. 算法分析:
在三种闭包中自反和对称闭包的求解很容易,对矩阵表示的关系,其自反闭包只要将矩阵的主对角线全部置为1就可;对称闭包则加上关系的转置矩阵(逻辑加法);传递闭包则有两种算法(二选一即可):
算法1:直接根据计算,过程略。
算法2:Warshall算法(1962)
设R的关系矩阵为M
(1)令矩阵A=M
(2)置i=1
(3)对所有的j,若A[j,i]=1,则
对于 k=1,2,…,n,令A[j,k]=A[j,k]+A[i,k]
注:此处为逻辑加,可以使用运算符||
(4) i=i+l.
(5)若i≤n,则转到(3),否则结束.
流程图
2. 程序代码:
#include<stdio.h>
void output(int s[][100]);
void zifan(int s2[][100]);
void duichen(int s2[][100]);
void chuandi2(int s2[][100]);
void chuandi1(int s2[][100]);
void aa();
int s[100][100],z;
int d,n ,i,j;
int main(){aa();return 0;}
void aa()
{
printf("请输入矩阵的行数(必须小于10)\n ");
scanf("%d",&n);
printf("请输入矩阵的列数(必须小于10)\n ");
scanf("%d",&d);
printf("请输入关系矩阵\n");
for(i=0;i<n;i++)
{ printf("\n");
printf("请输入矩阵的第%d行元素",i);
for(j=0;j<d;j++)
scanf("%d",&s[i][j]);
}
printf("输入对应序号选择算法\n1:自反闭包\n2:传递闭包1\n3:传递闭包(Warhall算法)2\n4:对称闭包\n");
scanf("%d",&z);
switch(z)
{
case 1:zifan(s); break;
case 2:chuandi1(s);break;
case 3:chuandi2(s);break;
case 4:duichen(s); break;
}
}
void output(int s[][100])
{printf("所求关系矩阵为\n");
for(i=0;i<n;i++)
{for(j=0;j<d;j++)
printf("%d",s[i][j]);
printf("\n");
}
}
void zifan(int s2[][100])
{
for(i=0;i<n;i++)
s2[i][i]=1;
output(s2);aa();
}
void duichen(int s2[][100])
{int s1[100][100];
for(i=0;i<n;i++)
for(j=0;j<d;j++)
s1[j][i]=s2[i][j];
for(i=0;i<n;i++)
for(j=0;j<d;j++)
{s2[i][j]=s2[i][j]+s1[i][j];
if(s2[i][j]>1)
s2[i][j]=1;
}
output(s2);
aa();
}
void chuandi1(int s2[][100])
{int m[100][100],a[100][100],k,h;
int t[100][100];
for(i=0;i<n;i++)
for(j=0;j<d;j++)
{ a[i][j]=0;
t[i][j]=s2[i][j];
m[i][j]=s2[i][j];}
for(h=0;h<n;h++)
{for(i=0;i<n;i++)
for(j=0;j<d;j++)
if(m[i][j]==1)
{for(k=0;k<n;k++)
if(s2[j][k]==1)
a[i][k]=1;
}
for(i=0;i<n;i++)
for(j=0;j<d;j++)
{ m[i][j]=a[i][j];
t[i][j]+=a[i][j];
a[i][j]=0;
if(t[i][j]>1)
t[i][j]=1;
}
}
output(t);aa();
}
void chuandi2(int s2[][100])
{int k;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(s2[j][i]==1)
for(k=0;k<n;k++)
s2[j][k]+=s2[i][k];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(s2[i][j]>1)
s2[i][j]=1;
output(s2);aa();
}
3.实验数据及结果分析
第二篇:小学数学知识分类汇总——数和数的运算
小学数学知识分类汇总——数和数的运算
★ 我们在数物体的时候,用来表示物体个数的1 ,2 ,3 …… 叫做自然数。0也是自然数,是最小的自然数,没有最大的自然数。自然数都是整数。
★ 小数的末尾添上“0”或者去掉“0”,小数的大小不变,这叫做小数的基本性质。 ★ 一个小数,从小数部分的某一位起,一个数字或几个数字依次不断地重复出现,这样的小数叫做循环小数。
★ 循环节从小数部分第一位就开始的叫做纯循环小数;循环节不是从小数部分第一位开始的叫做混循环小数。
★ 把单位“l”平均分成若干份,表示这样的一份或几份的数叫做分数。表示其中一份的数是这个分数的分数单位。
★ 两个整数相除,它们的商可以用分数表示。即:a÷b = (b≠0)
★ 分子和分母是互质数的分数叫做最简分数。
★ 真分数的倒数一定大于1,但假分数的倒数不一定小于1。
★ 分数的分子和分母同时乘上或者除以相同的数(0除外),分数的大小不变,叫做分数的基本性质。
★ 表示一个数是另一个数的百分之几的数叫做百分数,也叫做百分率或百分比。百分数没有单位。
★ 整数a除以整数b( b≠0 ),除得的商正好是整数而没有余数,我们就说a能被b整除,或者b能整除a 。
★ 如果a能被b整除,我们就说a是b的倍数,b是a的约数。
★ 一个数的约数的个数是有限的,其中最小的约数是1,最大的约数是它的本身。 ★ 一个数的倍数的个数是无限的,其中最小的倍数是它本身,没有最大的倍数。 ★ 一个数,如果只有1和它本身两个约数,叫做质数。
★ 一个数,如果除了1和它本身,还有别的约数,叫做合数。
★ 把一个合数写成几个质数相乘的形式,叫做分解质因数。
★ 几个数公有的倍数叫做这几个数的公倍数,其中最小的一个叫做这几个数的最小公倍数。
1
★ 几个数公有的约数叫做这几个数的公约数,其中最大的一个数叫做这几个数的最大公约数。
★ 公约数只有1的两个数,叫做互质数。
★ 能被2整除的数叫做偶数,不能被2整除的数叫做奇数。一个自然数不是偶数就是奇数。
★ 最小的偶数是0,最小的奇数是1 ,最小的质数是2 ,最小的合数是4 。 ★ 除了0和2以外,所有的偶数都是合数。
★ 能同时被2、3、5整除的最小的两位数是30,最小的三位数是120。
★ 一个算式,如果只含有同一级运算,要按照从左往右的顺序依次计算。如果含有两级运算,要先算乘除,后算加减。如果有括号,还要先算括号里面的,再算括号外面的。
★ 乘积是1的两个数叫做互为倒数。
★ 甲数除以乙数(0除外),等于甲数乘以乙数的倒数。
★ 利息 = 本金 × 利率 × 时间 税后利息 = 本金 × 利率 × 时间 ×80% 小学数学知识分类汇总——代数初步知识
★ 含有未知数的等式叫做方程。
★ 求方程的解的过程叫做解方程。
★ 两个数相除又叫做两个数的比;表示两个比相等的式 子叫做比例。 ★ 比的后项不能为0。
★ 比的前项除以后项的商,叫做比值。比值可以是整数、小数或分数。
★ 比的前项和后项都乘上或除以相同的数(0除外),比值不变,叫做比的基本性质。
★ 在比例里,两个内项的积等于两个外项的积,叫做比例的基本性质 。 ★ 图上距离和实际距离的比叫做比例尺。
★ 比例尺有数值比例尺和线段比例尺两种。
★ 两种相关联的量,一种量变化,另一种量也随着变化,如果这两种量中相对应的两个数的比值一定,这两种量就叫做乘正比例的量,它们的关系叫做正比例关系。
2
即: x ÷ y = k (一定)
★ 两种相关联的量,一种量变化,另一种量也随着变化,如果这两种量中相对应的两个数的积一定,这两种量就叫做乘反比例的量,它们的关系叫做反比例关系。 即: x × y = k ( 一定 )
★ 圆的半径和面积不成比例 和 周长成正比例。
★ 三角形的面积一定,底和高成反比例。
★ 比例尺一定,图上距离和实际距离成正比例。
★ 一种商品先降价10%,再提价10%,价格比原来降低了。
★ 甲比乙多25%,则乙比甲少20%。
小学数学知识汇总——量的计量
★ 常用的长度单位有千米、米、分米、厘米和毫米。
★ 常用的面积单位有平方千米,公顷、平方米,平方分米和平方厘米。 ★ 常用的体积单位有立方米,立方分米,立方厘米。
★ 常用的容积单位有升和毫升。1升=1000毫升。
★ 立方分米就是升,立方厘米就是毫升。
★ 常用的重量单位有吨,千克和克。
★ 常用的人民币单位有元、角、分。
★ 常用的时间单位有世纪、年、月、日、时、分、秒。
★ 1世纪=100年,1年=12月,大月31天,小月30天
★ 一年有12个月,分为四个季度,每个季度三个月。
★ 每四年中有三个平年和一个闰年。平年2月有28天,闰年2月有29天。 ★ 45分钟 =3/4 小时 1平方千米=100公顷。
小学数学知识汇总——几何初步知识
★ 直线没有端点,两端可以无限延长,不能测量长度。
★ 射线有一个端点,一端可以无限延长,不能测量长度。
★ 线段有两个端点,不能延长,可以测量长度。
★ 过一点可以画无数条直线,过两点可以画一条直线。
3
★ 在同一平面内,两条直线的相互位置有相交和平行两种。
★ 在同一平面内,不相交的两条直线叫做平行线。
★ 一个顶点和从这个顶点出发的两条射线组成的图形叫做角。
★ 大于0度小于90度的角叫锐角;大于90度小于180度的角叫钝角。
★ 三角形的内角和是180度;四边形的内角和是360度。
★ 直角是90度,平角是180度,周角是360度。
★ 三角形按角可以分为直角三角形、锐角三角形和钝角三角形。
★ 三角形按边可分为等边三角形、等腰三角形和不等边三角形;等边三角形三条边都相等,三个角都是60度。
★ 长方形和正方形都是特殊的平行四边形。
★ 当圆、正方形和长方形的周长相等时,圆的面积最大,长方形的面积最小。 ★ 三角形具有稳定性,平行四边形容易变形。
★ 等底等高的情况下,三角形的面积是平行四边形面积的一半。
★ 圆是平面上的一种曲线图形,围成圆的曲线的长度叫做圆的周长;圆所在的平面的大小叫做圆的面积。
★ 从圆心到圆上任意一点的线段叫做圆的半径。
★ 通过圆心,并且两端都在圆上的线段叫做圆的直径。
★ 顶点在圆心的角叫做圆心角;圆内最长的线段是直径。
★ 圆有无数条半径和无数条直径。
★ 在同一圆内,所有的半径都相等,所有的直径也都相等。
★ 在同一圆内,直径是半径的2倍。
★ 圆的周长与直径的比值叫做圆周率,用字母∏来表示,是祖冲之最早计算出来的。∏≈ 3.14
★ 圆心决定了圆的位置,半径决定了圆的大小。
★ 扇形的大小是由半径和圆心角来决定的 。
★ 圆规两角间的距离指的是圆的半径。
★ 如果一个图形沿着一条直线对折,两侧的图形能够完全重合,这个图形就叫做轴
4
对称图形,折痕所在的直线叫做对称轴。
★ 圆有无数条对称轴,长方形有两条对称轴,正方形有四条对称轴,等腰三角形有一条对称轴,等边三角形有三条对称轴,等腰梯形有一条对称轴,半圆或扇形都有一条对称轴。
小学数学知识汇总——图形的周长、面积、体积公式及相关知识
★长方形周长 =(长+宽)×2
长方形面积 =长×宽
★正方形周长 = 边长 × 4
正方形面积 = 边长×边长
★三角形面积 = 底×高÷2
★平行四边形面积 = 底 × 高
★梯形面积 = (上底 +下底)×高÷2
★圆的周长等于∏×直径或∏×半径×2 即C =∏d或C = 2∏r
★圆的面积等于3.14×半径的平方。
★环形的面积等于3.14×(大半径的平方- 小半径的平方)
★半圆的周长 = 圆的周长的一半 + 直径 即:∏ r + 2 r
★长方体的表面积 = (长×宽 + 长×高 + 宽×高)× 2
★长方体的体积 = 长 × 宽 × 高 或 底面积×高
★正方体的表面积 = 棱长×棱长× 6
正方体的体积 = 棱长×棱长×棱长
★圆柱体的表面积=2个底面积 + 侧面积
侧面积=底面周长×高
★圆柱体的体积 = 底面积 × 高
圆锥体的体积 = 底面积 × 高 ÷ 3
★长方体和正方体都有6个面、8个顶点和12条棱。
★相交于同一顶点的三条棱分别叫做长方体的长、宽、高。
★正方体可以看作是特殊的长方体。
5
★最少需要8个相同的小正方体才能拼成一个大正方体。
★圆柱体上下两个底面都是圆形,而且它们的面积都相等。
★圆柱体的侧面展开是长方形,它的长是圆柱底面的周长,它的高是圆柱的高。 ★圆锥的底面也是圆形,侧面展开是扇形。
★圆柱体的体积是和它等底等高的圆锥体的体积的3倍。
★大圆的半径是小圆的直径,则大圆的面积是小圆的面积的4倍。
★在正方形里剪一个最大的圆,正方形的边长就是圆的直径。
★在长方形里剪一个最大的圆,长方形的宽就是圆的直径。
★把一个长方形拉成一个平行四边形以后,面积比原来变小了。
★长方形的周长要先除以2,然后再按比例分配;而长方体的棱长总和要先除以4,然后再分配。
★圆的半径扩大3倍,周长也扩大3倍,面积扩大9倍。
★正方体的棱长扩大3倍,则表面积扩大9倍,体积扩大27倍。
★圆柱体或圆锥体的底面半径扩大2倍,体积扩大4倍。
★常见的统计图有条形统计图、折线统计图和扇形统计图。
★条形统计图的特点是很容易看出各种数量的多少;折线统计图的特点是不但可以看出各种数量的多少,而且能够清楚地表示出数量增减变化的情况;扇形统计图的特点是可以清楚地表示出各部分数量和总数之间的关系
6