给定一个大的任意集合 S 和一个集合列表 S_n,找到 S_n 中作为 S 子集的所有集合。
换句话说,PowerSet(S) 和 S_n 的交集。
是否有任何 Java 库可以快速完成这种数学运算?集合 S_n 的列表相对较小,最多几百个,而这些集合最多包含 10 个项目。但是,任意集合(在运行时确定)可能有多达 20 个项目(在 1000 个集合中),因此具有巨大的幂集。
我正在寻找一种方法,也许是进行某种类型的离线计算,以非常快速地(50 毫秒或更短)进行这种确定。
示例:S = { 1, 2, 3 }
S_n = [ { 1 }, { 1, 2 }, { 5, 4, 6 } ]
结果 = [ { 1 }, { 1, 2 } ]