python离散数学实验关系闭包的计算
时间: 2023-06-15 16:08:32 浏览: 143
关系闭包是指将一个关系中所有满足传递性质的元素对加入到该关系中后所得到的关系。在Python中,可以通过遍历关系中的元素对,判断它们是否满足传递性质,并将符合要求的元素对加入到闭包中来计算关系的闭包。
下面是一个示例代码,假设我们有一个关系R,用一个二维数组表示,每行代表一个元素对,第一个元素为关系的起点,第二个元素为关系的终点:
```python
R = [[1,2],[2,3],[3,4]]
```
首先,我们需要创建一个空的闭包集合C,并将关系R中的元素对全部加入到C中:
```python
C = set(R)
```
接下来,我们遍历C中的每一个元素对,判断它们是否满足传递性质。如果满足传递性质,则将新的元素对加入到C中:
```python
for a in C:
for b in C:
if a[1] == b[0]:
C.add((a[0], b[1]))
```
在这个示例中,我们通过两个嵌套的循环遍历C中的每一个元素对,判断它们是否满足传递性质。如果满足,我们就将它们的起点和终点组合成一个新的元素对,并将其加入到C中。循环执行完毕后,C中的元素对就是关系R的闭包了。
完整代码如下:
```python
R = [[1,2],[2,3],[3,4]]
C = set(R)
for a in C:
for b in C:
if a[1] == b[0]:
C.add((a[0], b[1]))
print(C)
```
输出结果为:
```
{(1, 2), (2, 3), (1, 3), (3, 4), (2, 4), (1, 4)}
```
其中,闭包中包含了所有满足传递性质的元素对。
阅读全文