我试图弄清楚如何在 Python 中做到这一点:
打印出任何给定集合的所有子集。
例如:[1,2]
所以答案是手动的:
[]
[2]
[1]
[1,2]
我意识到解决方案的总数是2(exp)n,其中n是列表中的元素数。
例如,如果列表是[1,3,4],那么子集的总数将是2(exp)3 = 8。
我还意识到,如果我得到上面列表的二进制位表示,则会出现以下内容:
例如:[1,2]
00 : []
01 : [2]
10 : [1]
11 : [1,2]
包含 的位的每个位置1,即子集在将其索引到原始集时的位置[1,2]。例如,二进制 01 = 在原始集合的位置 1 处获取索引,[1,2]这将是[2].
[1,2]二进制 11,意味着从给出答案的原始集合中获取索引位置 0 和 1,依此类推[1,2]。
我该如何编码,我的代码太乱了,有没有简单的方法来映射这个?