如何生成给定列表的幂集?
2022-09-01 14:39:04
我正在尝试生成给定长度N列表的所有2 ^ N - 1可能组合的集合。集合会将组合中的元素数映射到包含特定长度组合的组合的有序列表。例如,对于列表:
[A, B, C, D]
我想生成地图:
{
1 -> [{A}, {B}, {C}, {D}]
2 -> [{A, B}, {A, C}, {A, D}, {B, C}, {B, D}, {C, D}]
3 -> [{A, B, C}, {A, B, D}, {A, C, D}, {B, C, D}]
4 -> [{A, B, C, D}]
}
生成的数据库应保持原始顺序(其中表示有序序列 (),并表示无序组 ()),并尽可能快地运行。[]
List
{}
Set
我整天都在为一些递归代码而苦苦挣扎(我知道实现应该是递归的),但无法深入了解它。
是否有我可以使用的参考/此类算法的现成实现?