ここ2-3日続けてきたjavascriptシリーズについて、まとめてみました。
上から
- 順列
- 重複順列
- 組み合わせと重複組み合わせ
について書いた過去記事です。
一番古い記事が質的にも量的にもよくまとまっていると思います。
というより、それがここ数日の元凶だったり。
次が作ったメソッドのまとめです。
ご利用はご自由にどうぞ。
使う人はいないと思いますが……
これだけで終わってもよいのですが、さすがに寂しいので、おまけ。
べき集合という集合があります。
簡単にいうと、ある集合Pの部分集合の集合です。
たとえば P = [0,1,2]とすると、以下がPのべき集合の要素となります。
[] [0] [1] [2] [0,1] [0,2] [1,2] [0,1,2]
今日はべき集合を求めるArrayのクラスメソッドをjavascriptで作ります。
やり方としては下の図を見てもらえればわかりやすいはず。
10進数 | 2進数の配列 | 要素が1のインデックス | |
---|---|---|---|
0 | [0,0,0] | なし | |
1 | [0,0,1] | 2 | |
2 | [0,1,0] | 1 | |
3 | [0,1,1] | 1,2 | |
4 | [1,0,0] | 0 | |
5 | [1,0,1] | 0,2 | |
6 | [1,1,0] | 0,1 | |
7 | [1,1,1] | 0,1,2 |
何を言わんとしているか、わかっていただければ幸いです。
2進数は[true,false].repeatedPermutationで作り、trueとなるインデックスを取得。
最後に元の配列に落とし込んでいけば完成というわけですね。
まあ例のごとく使い道はなさそうでござる。
個人的にはうまく動いていて大満足なのですがね。