离散数学,传递闭包的运算 ,集合的划分和覆盖 ,等价关系 ,等价类,相容关系 ,偏序关系

目录

1.传递闭包的运算 

2.集合的划分和覆盖 

3.等价关系 

4.等价类 

等价关系的性质 

商集 

5.相容关系 

相容类 

写出以下相容关系的最大相容类 

完全覆盖 

6.偏序关系 

覆盖 

7.哈斯图例子 


1.传递闭包的运算 

827cf987b17e4bb38a2db15d9eb84d54.png

c9f0f4f6290c4c3ba4e7f86ac2ce6be2.png

7c8a2a6a414945da944bbf8b53fd6ad1.png

a2645d3239f34488a89073c7e5af29ff.png

52c12cacae4349a19ec14941f5eef4e7.png

457fe13cb30948d284f171a34cc2dda7.png

2.集合的划分和覆盖 

21ba0894b5734a3fb7f111acc90da12b.png

3fd38e3ca79f45b0aecc92d27914287e.png

8c6ec2e8369649f4b38cad8fd3e12dda.png

62623fedaab3428eb6ba3db729134c39.png

ebc304772fc742508162e664ad96f9ec.png

3.等价关系 

ad83871b2abf4961ba746fbf6c886f6e.png

6a6666e387254bee9adf34fbf2cc8300.png

be2c4760588e4740b5fae776c7570bee.png

283ad15a23604a309293329335368fc1.png

4.等价类 

3e336c9ec7e4471da98bab0967425449.png

1b4d73ce3a454f14b563fdc52fd5cb51.png

等价关系的性质 

0b92ef5c03aa4213a988c2a004d16d6e.png

c3b822c63c4440efb9308dcbfdfe07c1.png

da3dfa1c3c52413e8afd00d457af95a5.png

a986d9e0b0084893abc690f977958691.png

商集 

49bd6360a9cc4641b05b96984dd83051.png

5.相容关系 

736f23b5c59a49d1b61ede2bfbc81a46.png

相容类 

9638a6e240014da5afdcbb6e716c8e72.png

c6b9b81219e8430c94b72b60da02b4ea.png

写出以下相容关系的最大相容类 

8ab52b1fb78c4d35ab3c26758767ab8a.png

完全覆盖 

c4d782e339c6425986c5f3bcb04f99fe.png

6.偏序关系 

e38324c3ac854e00843633045315a051.png

1cb2a92292524a6988b6bc14038a337e.png

覆盖 

7c06d225f5cc4f5693fab773c971fbca.png

1a930bac1e29428f954ba20281967016.png

62fe712147c0448282cd7b9a2dc7e589.png

7762ef7522b346e787d712bbe1c0915d.png

7.哈斯图例子 

e06e37bc8d064b9fb47ffa894960380d.png

7d93c4ea54ec41aeadaeb220bb1c41dc.png

d26fcd56b78f4787ab6d249d8cbc031a.png

c06b139416fc4497a0abf1143142c9b9.png

023ff876a26148da813f6c289c3fdab6.png

0030430166084285b82a7fda3b6036a9.png

传递闭包运算是一个经典的离散数学概念,可以通过 C 语言的代码进行实现。以下是一个简单的离散数学传递闭包运算的 C 语言实现。 ```c #include <stdio.h> #include <stdlib.h> #define MAX_SIZE 50 int main() { int n; printf("请输入矩阵的大小:"); scanf("%d", &n); int matrix[MAX_SIZE][MAX_SIZE]; int transitive_closure[MAX_SIZE][MAX_SIZE]; printf("请依次输入矩阵元素:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { scanf("%d", &matrix[i][j]); } } // 初始化传递闭包矩阵 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { transitive_closure[i][j] = matrix[i][j]; } } // 计算传递闭包矩阵 for (int k = 0; k < n; k++) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (transitive_closure[i][k] && transitive_closure[k][j]) { transitive_closure[i][j] = 1; } } } } printf("传递闭包矩阵为:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%d ", transitive_closure[i][j]); } printf("\n"); } return 0; } ``` 代码中,首先要求用户输入矩阵的大小和元素,然后初始化传递闭包矩阵,接着进行传递闭包运算,最后输出传递闭包矩阵。在传递闭包运算中,我们通过三重循环遍历每个元素,如果存在从 i 到 k 和从 k 到 j 的路径,那么就可以从 i 到 j,因此将 transitive_closure[i][j] 赋值为 1。 需要注意的是,这里的矩阵的行列数必须是相同的。如果矩阵不是方阵,则传递闭包运算依然可以进行,但是需要对矩阵进行扩展,使得行列数相同。另外,在实际使用中,我们可能需要对输入的矩阵进行合法性检查,以确保输入的矩阵满足传递闭包运算的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏箱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值