c语言求布尔矩阵的乘积,离散数学 关系矩阵的布尔乘法的简便方法

求R1 R2 的复合关系R1○R2的关系矩阵时,需要用到布尔乘法,

设关系矩阵为R1  1   0   1   R2   1   0   1

1   0   1       0   1   1

0   1   0      1   0   0

则根据公式运算方法为

1∧1 ∨ 0∧0 ∨ 1∧1     1∧0 ∨ 0∧1 ∨ 1∧0     1∧1 ∨ 0∧1 ∨ 1∧0

1∧1 ∨ 0∧0 ∨ 1∧1     1∧0 ∨ 0∧1 ∨ 1∧0    1∧1 ∨ 0∧1 ∨ 1∧0

0∧1 ∨ 1∧0 ∨ 0∧1     0∧0 ∨ 1∧ 1 ∨ 0∧0    0∧1∨ 1∧1 ∨ 0∧0

在计算的时候,如果两两先计算合取,最后计算析取,因为析取只要出现一个1,则可以忽略其他而得到结果为1,利用这点可以简化计算,

ex. : Line1 : 1∧1 ∨ 0∧0 ∨ 1∧1 等于 (1∧1) ∨ (0∧0) ∨ (1∧1)

很明显 强调部分 1∧1 等于1 所以结果第一行第一列为1

由此,我们可以把计算重心放在“1”上

计算结果时:

Part1:R1第一行 第 1 第 3 个数字是1

R2:

I. 第一列第 1 , 3 都是1, 所以复合关系L1R1(行1列1)是1

II. 第二列第 1 , 3都不是1,所以复合关系L1R2 是 0

III. 第三列第 1 个是1,所以复合关系L1R3 是1

Part2: R1第二行 第 1 第 3 个数字是 1

R2: 因为“1”的位置相同,所以同上

Part3:R1 第三行 第 2 个数字是 1

R2:

简便点讲R2只有第二列的第2个数字是1,所以L3,只有R2 是1 即 0 1 0

所以结果是

1  0  1

1  0  1

0  1  0

读者不难发现R1中的1 越少,则计算量简化的越多。

a1d0eaeb689b

demo

像这一题的思路,则非常简单,S 的第一行第三个数字是1

R中 只有第二列第三个数字是1,所以答案第一行为 01000;

S第二行第四个数字是1,R中第三列第四个数字是1,所以答案00100;

以此类推,实际在计算过程中填充1的位置,最后补全0,也很简便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值