同僚に冪集合作ってみては、と言われたので作った。冪集合はhttp://www.geocities.jp/k27c8_math/math/set_theory/power_set.htmとかに書いてあるとおり、渡された集合の部分集合全体。 考え方 思いついたのは以下の考え方。 [ 1, 2, 3 ]と渡されたとする 冪集合とは、それぞれを含む・含まないを全通り集めたものと考える すると、[ 0, 0, 0 ], [ 0, 0, 1 ], [ 0, 1, 0 ], ..., [ 1, 1, 1 ]のようなbit配列を考え、1なら対応する要素をピックアップすると考えたらいい ループは2の3乗分行えば良いはず 実装 import java.util.ArrayList; import java.util.List; public class PowerSet1 { public static Li