python - 生成一组整数的不相交子集的无序对
问题描述
我正在尝试生成一组整数 S 的不相交子集的无序对。如 [1] 所示,当 S 由 n 个整数组成时,我们生成大约 3 n /2 对。现在,我知道如何生成 S 的所有 2 n个子集(即 S 的幂集),并且对于每个子集(由 k 个整数组成),我可以因此生成 kC2(k 选择 2)个可能的对。但这是低效的,因为配对最终会生成不止一次。
因此,我想知道是否有一些有效的(递归)方法可以从 S 生成这些子集对?到目前为止,我找不到任何现有的实现,并且我自己使用 Python 的 itertools 的尝试也没有成功。
解决方案
推荐阅读
- ruby-on-rails - 同一字段中的多词 Ransack 搜索不起作用
- embedded - 使用命令行使用 GHS 探针闪烁目标
- eclipse-rcp - e4 RCP 应用程序:如何禁用与对话框的窗口交互?
- ibm-cloud - IBM Cloud COS:使用 S3 API get-bucket-location 返回未找到存储桶
- typo3 - FLUID 中的条件以检查列是否有内容
- ios - 获取IOS中的链接联系人列表
- angular - 将 Angular 7 应用程序部署到 Azure Web 应用程序
- apache-kafka - KSQL/Kafka Streams 可以支持复杂的事件处理吗?
- mysql - MySQL 错误代码:1824。无法打开引用的表
- javascript - Javascript。什么时候必须在子类声明中使用构造函数?