生成一组整数的不相交子集的无序对

2024-05-20 16:25:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图生成一组整数的不相交子集的无序对。 如[1]所示,当S由n个整数组成时,我们生成大约3个n/2对。 现在,我知道如何生成S的所有2n子集(即S的幂集),并且对于每个子集(由k个整数组成),我可以因此生成kC2(k选择2)可能的对。 但这是低效的,因为配对将被多次生成

因此,我想知道是否有一些有效的(递归)方法来从S生成这些子集对?我找不到任何现有的实现,我自己尝试使用Python的itertools等工具,但迄今为止都没有成功

[1]Total number of unordered pairs of disjoint subsets of S (MathOverflow)


Tags: 工具of方法number整数子集total无序