离散数学实验C关系的运算幂运算闭包运算

合集下载

离散数学关系的性质

离散数学关系的性质

任取<x, y>
<x, y>R<y, x>R ………..………. x=y
前提
推理过程
结论
例6 证明若 R∩R1IA , 则 R 在 A 上反对称. 证 任取<x, y>
<x, y>R <y, x>R <x, y>R <x, y>R 1
<x, y>R∩R 1 <x, y>IA x=y 因此 R 在 A 上是反对称的.
有 R)
例(18) 不判自断反下也图不中反关自系反的;性对质称, 并, 不说反明对理称由;不传递. 注任因注<和只注列任证M对因f于反<W(于W对例例考当 R证考对其o3xx1r)aat意取此意证意的取于此等对等于23察检明察于中,,[M<rrj自和iyyss,x: <有 : : 元 <k于 称 于 k设 G查模 GkE>>hht(任R设RRj,反==RRR=aa]xx1,R1y是31的的ll在在M在素关:关A完 式000,,)则在123ll取A>y3,= =tR算算y,,,RR和====o>111和r= 每 每上上上记系恒系所>是M∪<,,,和A不{{=n证法法………,{{{{xR<<({一一述述述作,等,有MtAM<<<Rad3<<上[,<是aaa小小明∩:的,,,<,iaaao)上ynnnyy0,,,y+,条条等等等关的Mbbb,,,ayR,,同>是,,,,=abc反jE于于依,z>,,>]Rxx的MMM>>,ckI>边边式式式系顶>zc,A,阶反+>>}[,}<自<,关关据>}<在kkk<i传,<b,,中中中点I,a,M1[[[b的jb对ARy反,,如如系系iii]Rc,b,递,,,,RRA.Rbt1矩矩矩后c,jjj>>1单[称]]]z;>>果 果,,,i===},}上关>,R阵阵阵就整整}}空<,R111,位的k有有(2x当当当自系R]2的的的得除除1……关,,矩.,一一Ry且且且)R反,RR元元元到关关……系>M阵R32条条34仅仅仅和=2素素素图系系……是是t=,[不xxk当当当MIR{相相相,,G..AAA{ii,<是包包4<’jt在上在到到在上是a]加加加都a.,A含含,a的的b时时时是xx>上Mx>关关jj,反关=<,使使使A的的<的的ya系系上b对系,用用用单单b传,转a,,>的称,>逻逻逻真真向向递,其置<,关<关辑辑辑包包边 边b关中a矩,系,系ac加加加含含,,系>阵>ii,}≠≠}...关关.其jj.,, 系系则则中在在GG中中加加(2一一)条条

离散数学+高等里离散数学 课件 CHAP2

离散数学+高等里离散数学 课件 CHAP2

离 散 数 学
9
关系图举例
• 例:设A={1,2,3,4,5} , R={<1,1>,<1,2>,<3,2>,<1,4>,<5,4>,<5,1>}, 则,R的关系图GR如下:
1
5 4 3
离 散 数 学
10
2
下面关系图有什么性质
a b c a b d c b a c
(a)
自反,反对称, 传递
(b)
离 散 数 学
15
逆关系
定义2.2.3 设R是A到B的二元关系,令: R–1={<y,x>|<x,y>∈R},称为R的逆关系。 显然,(R–1)–1=R 。 定理2.2.3 设R是A到B的二元关系, S是B到C的 二元关系,则:(R • S) –1 = S–1 • R–1 证明:∵任意<x,z>∈(R • S) –1 <z,x>∈R • S 存在y∈B,使得<z, y>∈R且 <y, x>∈S <y,z>∈ R–1且<x,y>∈ S–1 <x,z>∈S–1 • R-1
离 散 数 学
8
关系的图的表示
• 一个在有穷集合A上的二元关系R可以用 一个有向图GR表示。令| A | = n ,〈 i, j 〉 表示A中第i个元素和第j个元素的序偶, GR=〈V,E〉, | V | = n ,V中的每个结 点分别表示A中的一个元素。ninj E, 即从结点i到结点j有一条有向边,当且仅 当〈 i,j 〉 R。
2
2
离 散 数 学
2
二元关系几个性质的定义
定义2.1.2 设R是定义在集合A上的二元关系:

《离散数学》课件-第四章 二元关系

《离散数学》课件-第四章 二元关系
则关系R的各次幂为: R0 =A ={<1,1> , <2,2> , <3,3> , <4,4> , <5,5>} R1=R
R2= R • R={<1,1>,<2,2>,<1,3>,<2,4>, <3,5>}
R3=R2 • R={<1,2>,<2,1>,<1,4>,<2,3>, <2,5>}
R4= R3 • R={<1,1>,<2,2>,<1,5>,<2,4>,
从关系图来看关系的n次幂
R:
1
2
3
4
5
R2:
1
2
3
4
5
R2就是从R的关系图中的任何一个结点x出发,长 为2的路径,如果路径的终点是y,则在R2 的关系 图中有一条从x到y的有向边。其他以次类推:
R3:
1
2
3
4
5
R4:
1
2
3
4
5
定理 设|A|=n,R A×A,则必有i,j∈N, 0≤i<j≤2n2,使得Ri=Rj。
=R5,R7=R6•R=R5,…,Rn=R5 (n>5) 故Rn{R0,R1,R2,R3,R4,R5}。
S0=IA,S1=S,
S2=S•S={<a,c>,<b,d>,<c,e>,<d,f>}, S3=S•S•S=S2•S={<a,d>,<b,e>,<c,f>}, S4=S3•S={<a,e>,<b,f>}, S5=S4•S={<a,f>}, S6=S5•S=Φ, S7=Φ, …, 故,Sn{S0,S1,S2,S3,S4,S5,S6}

3.3关系上的闭包运算

3.3关系上的闭包运算
1 3 1 3 1 3
2 r(R)s(R)t(R)
4
2
4
2
4
构造自反闭包r(R)的方法
定理3.3―5设R是集合A上的二元关系.那么, r(R)=R∪E(这里E是A上相等关系,在本节中均如此.) 证 设R′=R∪E.显然,R′是自反的且 是自反的 R⊆R′. 余下只需证明R′最小性, 现假设R″是A上的自反关系且R⊆R″. 因R″是自反的,所以E⊆R″, 所以R′=R∪E⊆R″. 这样,定义3.3―2都满足.所以,R′=r(R).证毕
2011-1-10
离散数学
14

设集合A={1,2,3,4},R={<1,2>,<2,2>,<2,3>,<3,4>}是定义在A 上的二元关系。 上的二元关系。 (1)画出R的关系图; 的关系图; (2)求出r(R),s(R),t(R),并画出其相应的关系图。 并画出其相应的关系图。 解(1)R的关系图见下图; 的关系图见下图;
离散数学
4
性质
1. xRy⇔yR-1x 2. 将R的关系图中有向边的方向改变成相反方 有向边的方向改变成相反方 向即得R-1的关系图,反之亦然; 3. 将R的关系矩阵转置即得R-1的关系矩阵, 即R和R-1的关系矩阵互为转置矩阵。 的关系矩阵互为转置矩阵。 4. R-1的前域与后域正好是R的后域和前域, 即domR=ranR-1,domR-1=ranR; 5. (RoS)-1=S-1oR-1。
2011-1-10 离散数学 18
构造对称闭包t(R)的方法
定理3.3―7设R∞ 是集合A上的二元关系,那么 t ( R ) = U R i = R U R 2 U R 3 UL 证明分两部分

离散数学知识点总结

离散数学知识点总结

注意/技巧:析取符号为V,大写字母Vx + y = 3不是命题前件为假时,命题恒为真运用吸收律命题符号化过程中要注意命题间的逻辑关系,认真分析命题联结词所对应的自然语言中的联结词,不能只凭字面翻译。

也就是说,在不改变原意的基础上,按照最简单的方式翻译通用的方法:真值表法VxP(x)蕴含存在xP(x)利用维恩图解题证明两个集合相等:证明这两个集合互为子集常用的证明方法:任取待证集合中的元素<,>构造相应的图论模型第一章命题逻辑命题和联结词命题的条件:表达判断的陈述句、具有确定的真假值。

选择题中的送分题原子命题也叫简单命题,与复合命题相对简单联结词的真值表要记住非(简单)合取(当且仅当P,Q都为真时,命题为真)析取(当且仅当P,Q都为假时,命题为假),P,Q可以同时成立,是可兼的或条件(→)(当且仅当P为真,Q为假时,命题为假)P是前件,Q是后件只要P,就Q等价于P→Q只有P,才Q等价于非P→非Q,也就是Q→PP→Q特殊的表达形式:P仅当Q、Q每当P双条件(↔)(当且仅当P与Q具有相同的真假值时,命题为真,与异或相反)命题公式优先级由高到低:非、合取和析取、条件和双条件括号省略条件:①不改变先后次序的括号可省去②最外层的括号可省去重言式(永真式)、矛盾式(永假式)、偶然式可满足式:包括重言式和偶然式逻辑等价和蕴含(逻辑)等价:这是两个命题公式之间的关系,写作“⇔”,要与作为联结词的↔区分开来。

如果命题公式A为重言式,那么A⇔T常见的命题等价公式:需要背过被标出的,尽量去理解。

关键是掌握公式是将哪个符号转换为了哪个符号,这对于解证明题有很大的帮助!验证两个命题公式是否等价:当命题变元较少时,用真值表法。

当命题变元较多时,用等价变换的方法,如代入规则、替换规则和传递规则定理:设A、B是命题公式,当且仅当A↔B是一个重言式时,有A和B逻辑等价。

蕴含:若A→B是一个重言式,就称作A蕴含B,记作A⇒B常见的蕴含公式的运用方法同上面的命题等价公式证明A⇒B:①肯定前件,推出后件为真②否定后件,推出前件为假当且仅当A⇒B且B⇒A时,A⇔B,也就是说,要证明两个命题公式等价,可以证明它们相互蕴含联结词的完备集新的联结词:条件否定、异或(不可兼或)、或非(析取的否定)、与非(合取的否定)任意命题公式都可由仅含{非,析取}或{非,合取}的命题公式来等价地表示全功能联结词集合极小全功能联结词集合对偶式对偶式:将仅含有联结词非、析取、合取(若不满足,需先做转换)的命题公式A中的析取变合取,合取变析取,T变F,F变T得到的命题公式A*称为A的对偶式范式析取式:否定+析取合取式:否定+合取析取范式:(合取式)析取(合取式)……析取(合取式)。

离散数学试验报告

离散数学试验报告

学院理学院学生姓名 xxx学号 xxxxxxxxxxx实验:编程二元关系的传递性判别,二元关系闭包方法一.前言引语:二元关系是离散数学中重要的内容。

因为事物之间总是可以根据需要确定相应的关系。

从数学的角度来看,这类联系就是某个集合中元素之间存在的关系。

二.数学原理:1.传递关系:对任意的x,y,z∈A,如果<x,y>∈R且<y,z>∈R,那么<x,z>∈R,则称关系R是传递的,或称R具有传递性,即R在A上是传递的⇔ (∀x)(∀y)(∀z)[(x ∈A)∧(y∈A)∧(z∈A)∧((<x,y>∈R)∧(<y,z>∈R)→(<x,z>∈R))]=12.自反闭包、对称闭包、传递闭包:设R是定义在A上的二元关系,若存在A 上的关系R′满足:1)R′是自反的(或对称的、或可传递的),2)R⊆ R′,3)对A上任何其它满足1)和2)的关系R〞,都有:R′⊆R〞。

则称R′为R的自反闭包(或对称闭包、或传递闭包),分别记为r(R)、(s(R)和t(R))。

三.实验编程语言:c++四.实验程序源代码:#include<iostream>using namespace std;int cdx(int a[100][100],int n){int b[100][100],i,j;for(i=1;i<=n-1;i++){for(j=1;j<=n;j++){if(a[1][j]==a[i+1][j] && a[1][j]==0)b[i][j]=0;elseb[i][j]=1;}for(j=1;j<=n;j++){if(b[i][j]!=a[1][j])return 0;}}return 1;}void zfbb(int a[100][100],int n){int i,j;for(j=1;j<=n;j++){for(i=1;i<=n;i++){if(a[i][j]==1){a[i][i]=1;a[j][j]=1;}}}cout<<"自Á?反¤¡ä闭À?包㨹关?系¦Ì矩?阵¨®为a:êo"<<endl;for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(a[i][j]>1){a[i][j]=1;cout<<a[i][j]<<" ";}else{cout<<a[i][j]<<" ";}}cout<<""<<endl;}}void dcbb(int a[100][100],int n){int i,j;for(j=1;j<=n;j++){for(i=1;i<=n;i++){if(a[i][j]==1){a[j][i]=1;}}}cout<<"对?称?闭À?包㨹关?系¦Ì矩?阵¨®为a:êo"<<endl;for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(a[i][j]>1){a[i][j]=1;cout<<a[i][j]<<" ";}else{cout<<a[i][j]<<" ";}}cout<<""<<endl;}}void cdbb(int a[100][100],int n){int i,j,k;for(j=1;j<=n;j++){for(i=1;i<=n;i++){if(a[i][j]==1){for(k=1;k<=n;k++){a[i][k]=a[i][k]+a[j][k];}}}}cout<<"传ä?递ÌY闭À?包㨹关?系¦Ì矩?阵¨®为a:êo"<<endl;for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(a[i][j]>1){a[i][j]=1;cout<<a[i][j]<<" ";}else{cout<<a[i][j]<<" ";}}cout<<""<<endl;}}void main(){int i,j,n,a[100][100],sel,ins;cout<<"请?输º?入¨?二t元a关?系¦Ì矩?阵¨®维?数ºyn"<<endl;cin>>n;cout<<"请?按ã¡äa[1,1],a[1,2]...a[1,n],a[2,1]...a[n.n]的Ì?顺3序¨©输º?入¨?关?系¦Ì矩?阵¨®的Ì?元a素?值¦Ì(ê¡§0,ê?1)ê?"<<endl;for(i=1;i<=n;i++)for(j=1;j<=n;j++){cin>>a[i][j];}INDEX:cout<<"请?输º?入¨?要©a判D定¡§的Ì?性?质¨º:êo"<<endl;cout<<"1、¡é传ä?递ÌY性?"<<endl;cout<<"2、¡é自Á?反¤¡ä闭À?包㨹"<<endl;cout<<"3、¡é对?称?闭À?包㨹"<<endl;cout<<"4、¡é传ä?递ÌY闭À?包㨹"<<endl;cout<<"5、¡é退ª?出?"<<endl;cin>>sel;if(sel==1){ins=cdx(a,n);if(ins==0)cout<<"该?二t元a关?系¦Ì不?具?有®D传ä?递ÌY性?。

离散数学3.7-8

15
复合关系和逆关系
S1=S, {<a,c>,<b,d>,<c,e>,<d,f>}, S2=SοS={<a,c>,<b,d>,<c,e>,<d,f>}, {<a,d>,<b,e>,<c,f>}, S3=SοSοS=S2οS={<a,d>,<b,e>,<c,f>}, {<a,e>,<b,f>}, S4=S3οS={<a,e>,<b,f>}, S5=S4οS={<a,f>}, {<a,f>}, S 6 = S 5 ο S =Φ , S 7=Φ, …, , (n>5). Sn=Φ (n>5).
20
关系的闭包运算
首先R 是自反的, 证:1. 首先 ∪ IA是自反的,且R R ∪ IA, 若又有自反关系R'满足 若又有自反关系 满足R R',则因为 满足 ,则因为R' 是自反的有I 是自反的有 A R',即有 R' ∧ IA R', ,即有R , 从而有R ∪ IA R',命题得证. 从而有 ,命题得证.
19
关系的闭包运算
下面介绍由给定关系R,求其各种闭包的方法. 下面介绍由给定关系R,求其各种闭包的方法. R,求其各种闭包的方法
定理 设R是集合A上的二元关系,则: 是集合A上的二元关系, r(R)= 1. r(R)=R∪IA. s(R)= 2. s(R)=R∪RC. 3. t(R)=t(R) = R ∪ R2 ∪ R3 ∪ .... t(R)= .
8
复合关系和逆关系

离散数学-二元关系、闭包的概念

离散数学-⼆元关系、闭包的概念⼆元关系设S是⼀个⾮空集合,R是关于S的元素的⼀个条件.假设对S中随意⼀个有序元素对(a,b),我们总能确定a与b是否满⾜条件R,就称R是S的⼀个关系(relation).假设a与b满⾜条件R,则称a与b满⾜条件R,则称a与b有关系R,记做aRb;否则称a与b⽆关系R.关系R也成为⼆元关系.定义:集合 X 与集合 Y 上的⼆元关系是 R=(X, Y, G(R)) 其中 G(R),称为R 的图,是笛卡⼉积 X × Y的⼦集.若 (x,y) ∈ G(R) 则称 x 是 R-关系於 y 并记作 xRy 或 R(x,y).但常常地我们把关系与其图等价起来,即若 R ⊆ X × Y 则 R 是⼀个关系.闭包关系的运算时关系上的⼀元运算。

它把给出的关系R扩充成⼀新关系R’,使R’具有⼀定的性质。

且所进⾏的扩充⼜是最“节约”的。

⽐⽅⾃反。

相当于把关系R对⾓线上的元素全改成1。

其它元素不变,这样得到的R’是⾃反的。

且是修改次数最少的。

即是最“节约”的。

⼀个关系R的闭包,是指加上最⼩数⽬的有序偶⽽形成的具有⾃反性,对称性或传递性的新的有序偶集,此集就是关系R的闭包。

设R是集合A上的⼆元关系,R的⾃反(对称、传递)闭包是满⾜下⾯条件的关系R':(i)R'是⾃反的(对称的、传递的);(ii)R'⊇R。

(iii)对于A上的不论什么⾃反(对称、传递)关系R",若R"⊇R,则有R"⊇R'。

R的⾃反、对称、传递闭包分别记为r(R)、s(R) 和t(R)。

性质1集合A上的⼆元关系R的闭包运算能够复合。

⽐如:ts(R)=t(s(R))表⽰R的对称闭包的传递闭包,通常简称为R的对称传递闭包。

⽽tsr(R)则表⽰R的⾃反对称传递闭包。

性质2设R是集合A上的⼆元关系,则有(a)假设R是⾃反的。

那么s(R)和t(R)也是⾃反的。

离散数学导论(第5版)-第二篇 集合论

x2=y2,…,xk=yk而xk+1=yk+1,如果xk+1≤yk+1 ,则我们 说xLy;如yk+1≤xk+1 ,则我们说yLx; • (3)如存在一个最大的K=min (n,m),使得x1=y1,x2 =y2,…,xn=yn ,此时如n≤m,则我们说xLy;如m≤n, 则我们说yLx。 •
18
• • 四个次序关系间的关系: • • • R是拟序则r (R) = R • • • R是偏序则R-Q是拟序 • • • 字典次序关系必为线性次序关系 • • • R是拟序则必反对称 • 八个概念: • • 最大元素(最小元素) • • 极大元素(极小元素) • • 上界(下界) • • 上确界(下确界)
• • |A∪B|=|A|+|B|-|A∩B|
• •|A∪B∪C| = |A|+|B|+|C| - |A∩B| - |A∩C| -|B∩C|+|A∩B∩C| n
i=1 1≤i<j≤n
1≤i<j<k≤n
• •|S1∪S2∪…∪Sn|n-=1∑|Si|-∑ |Si∩Sj|+ ∑
• |Si∩Sj∩Sk|(-1)∑ |S1∩S2∩…∩S n|
§3.1 函数的基本概念
• (1)一个基本概念——函数的基本概念。

函数建立了从一个集合到另一个集合的特殊对应关系。
设有集合X与Y,如果我们有一种对应关系f,使X的任一元素x能
与y中的一个唯一的元素y相对应,则这个对应关系f叫从X到Y的
函数或叫从X到Y的映射。x所对应的y内的元素y叫x的像,而x则
叫y的像源。上述函数我们可以表示成f:XY;或写成XY;
以及y=f(x)。

(2)三种不同性质函数:

• 满射与内射

离散数学第4章-二元关系


4.6 等价关系与划分
• 三 性质 • 定理4.13 设R是A上的等价关系,则 (1)对任一a∈A,有a∈[a]; (2)对a, b∈A,如果aRb,则[a]=[b]; (3)对a, b∈A,如果(a, b)∉R,则[a]∩[b]=∅; (4)∪a∈A[a]=A。
4.6 等价关系与划分
• 定理4.14 集合A上的任一划分可以确定A上 的一个等价关系R。 • 定理4.15 设R1和R2是A上的等价关系, R1=R2⇔ A/R1=A/R2 。 • 定理4.16 设R1和R2是A上的等价关系,则 R1∩R2是A上的等价关系。
4 .3 关系的运算
• 一 逆运算 • 定义4.7(逆关系) 设R是从A到B的二元关系, 则从B到A的二元关系记为R-1,定义为R-1 ={(b,a)|(a,b)∈R},称为R的逆关系。 • 定理2.1 (1)(R-1)-1=R; (2)(R1∪R2)-1= R1-1∪ R2-1; (3)(R1∩R2)-1= R1-1 ∩R2-1; (4) (A×B)-1= B×A;
4 .5 关系的闭包

• (1) (2) (3) • (1) (2) (3)
二 基本性质
定理4.5 设R是A上的二元关系,则 R是自反的 ⇔ r( R )=R; R是对称的 ⇔ s( R )=R; R是传递的 ⇔ t( R )=R; 定理4.6 设R1和R2是A上的二元关系,若R1⊆R2则 r(R1)⊆ r(R2); s(R1)⊆ s(R2); t(R1)⊆ t(R2)。
第四章 关系
4.1 二元关系 4.2 关系的性质 4 .3 关系的运算 4 .5 关系的闭包 4.6 等价关系与划分
4.1 二元关系
• 一 定义4.1(二元关系)
设A和B是任意两个集合,A×B的子集R称为从A到 B的二元关系。当A=B时,称R为A上的二元关系。若 (a, b)∈R,则称a与b有关系R,记为aRb。 (a, b)∉R:a与b没有关系R R=∅:空关系 R=A×B:全关系
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2关系的运算
(1) 关系的幂运算
输入:集合A,二元关系集合R,幂次n
输出:R的n次幂
要求:尽量使运算的计算量最小
(2) 关系闭包的计算
输入:集合A,二元关系集合R
输出:R的传递闭包t(R)
要求:
(a) 采用Warshall算法(89页)
(b) 编写代码判断输出t(R)为传递闭包
程序代码:
#include
#include
#include
usingnamespacestd;
typedefvector>Mat;
classRelation{
vectors;//集合
MatA;//关系矩阵
MatB;
MatC;
MatE;
MatD[100];//用来存储矩阵
intn;
public:
voidinputs();//将集合存入向量中
voidinputa();//将读入的关系转化为关系矩阵
voidprint();//输出关系矩阵
voidmi();
intWarshall();
};//定义类
intn,m;//全局变量,下文中使用
voidRelation::inputs(){
cout<<"输入集合";
for(inta;cin>>a;){
s.push_back(a);
if(getchar()=='\n')
break;}
}//将集合存入向量中
voidRelation::inputa(){//将读入的关系转化为关系矩阵
cout<<"输入关系";
inti,j,e,r;
for(i=0;i vectoru;
for(j=0;j intia=0;
u.push_back(ia);}
A.push_back(u);
B.push_back(u);
C.push_back(u);
E.push_back(u);
}//创建二维向量,初始化,是每个元素为0
for(inth,z;cin>>h>>z;){
if(h==0&&z==0)
break;
for(i=0;i if(s[i]==h)e=i;
if(s[i]==z)r=i;
}
A[e][r]=1;B[e][r]=1;
E[e][r]=1;//C[e][r]=1;//读入关系,将关系对应的矩阵
中的位置元素变为1
if(getchar()=='\n')
break;
}
}
voidRelation::print(){
for(inti=0;i for(intj=0;j cout< cout< }
}//输出关系矩阵
voidRelation::mi(){
inta,b,i,c;
cin>>n;//读入幂次
if(n==0){//0次幂
for(intk=0;k for(intj=0;j if(k==j)
cout<<"1";//对角线上元素为1
else
cout<<"0";
}
cout< }
}
else{
for(i=1;i for(inth=0;h for(intd=0;d intm=0;
for(intx=0;x m=m+B[h][x]*A[x][d];//第h行第d列的元
素对应相乘的和
}
C[h][d]=m;
}
}
if(i>1){
for(a=0;a for(b=0;b if(C[a][b]!=D[0][a][b])
break;
}
if(b!=s.size())break;
}
}//检验是否重复
if(a==s.size()&&b==s.size()){
break;//重复则跳出不再幂乘
}
for(intk=0;k for(intj=0;j B[k][j]=C[k][j];
}
D[i-1]=B;
c=i;
}
}
if(a==s.size()&&b==s.size()){
intq;
q=(n-i)%c;//找出结果位置
if(q==0)q=c;
for(inte=0;e for(intf=0;f cout< }
cout< }
return;
}else{//1次幂
for(inth=0;h for(intn=0;n cout< }
cout< }
}
}
}
intRelation::Warshall(){
for(inti=0;i for(intj=0;j if(A[j][i]==1){
for(intk=0;k A[j][k]=A[j][k]+A[i][k];
if(A[j][k]!=0&&A[j][k]!=1)
A[j][k]=1;
}
}
}
}
print();
inta=1;intb=1;//
for(intp=0;p for(intl=0;l if(A[p][l]==0){
for(intx=0;x if(A[p][x]*A[x][l]==1)
a=0;
}
}
}
}
if(a==0){cout<<"wrong!"< else{
for(intp=0;p for(intl=0;l if(A[p][l]==1&&E[p][l]==0){
A[p][l]=0;
//再判断传递性
for(intp=0;p for(intl=0;l if(A[p][l]==0){
for(intx=0;x if(A[p][x]*A[x][l]==1)
b=0;
}
}
}
}
if(b==1){
cout<<"wrong!"< return0;
}
A[p][l]=1;
}
}
}cout<<"right!"< }//
return1;
}
voidmain(){
Relationw;
w.inputs();
w.inputa();
w.print();
cout<<"输入n"< w.mi();
cout< cout<<"闭包为"< w.Warshall();
}
实验截图:

相关文档
最新文档