如何编程实现求有限个集合(集合的个数大于2)的笛卡尔乘积
时间: 2024-03-06 19:51:50 浏览: 64
javascript笛卡尔积算法实现方法.docx
可以使用嵌套循环来实现求有限个集合的笛卡尔积。具体的实现方法如下:
假设有 $n$ 个集合 $S_1, S_2, ..., S_n$,每个集合的元素个数分别为 $m_1, m_2, ..., m_n$。
首先定义一个列表 $result$,初始化为 $[()]$,表示笛卡尔积的初始值为一个空元组。
然后对于每个集合 $S_i$,遍历 $result$ 列表中的每个元组,将 $S_i$ 中的每个元素依次添加到这些元组中,得到新的元组,并将其添加到一个新的列表 $temp$ 中。
最后将 $result$ 替换为 $temp$,继续遍历下一个集合,直到遍历完所有的集合为止。
下面是 Python 代码实现:
```python
def cartesian_product(*sets):
result = [()]
for s in sets:
temp = []
for x in result:
for y in s:
temp.append(x + (y,))
result = temp
return result
```
使用示例:
```python
>>> cartesian_product(set([1, 2]), set([3, 4]), set([5, 6]))
[(1, 3, 5), (1, 3, 6), (1, 4, 5), (1, 4, 6), (2, 3, 5), (2, 3, 6), (2, 4, 5), (2, 4, 6)]
```
这个函数可以接受任意个集合作为参数,返回它们的笛卡尔积。
阅读全文