やりたいこと
例:引数1に3
を渡すと3ビットで表せれるすべての組み合わせを出力する。
たまに使用するので、個人的なメモ(誰かの役に立つと嬉しい)
出力例
[
[ '0', '0', '0' ],
[ '0', '0', '1' ],
[ '0', '1', '0' ],
[ '0', '1', '1' ],
[ '1', '0', '0' ],
[ '1', '0', '1' ],
[ '1', '1', '0' ],
[ '1', '1', '1' ]
]
コード
constgetAllBit=(len)=>{//すべての組み合わせの個数constend=Math.pow(2,len)-1letresult=[]for(leti=0;i<=end;i++){//len分だけ0うめconstbit=toBinary(i).toString().padStart(len,'0')result.push(bit.split(''))}returnresult}consttoBinary=(n)=>parseInt(n.toString(2))console.log(getAllBit(5))
実行例
引数に5を渡した場合(上記のコードと同じ)
[
[ '0', '0', '0', '0', '0' ],
[ '0', '0', '0', '0', '1' ],
[ '0', '0', '0', '1', '0' ],
[ '0', '0', '0', '1', '1' ],
[ '0', '0', '1', '0', '0' ],
[ '0', '0', '1', '0', '1' ],
[ '0', '0', '1', '1', '0' ],
[ '0', '0', '1', '1', '1' ],
[ '0', '1', '0', '0', '0' ],
[ '0', '1', '0', '0', '1' ],
[ '0', '1', '0', '1', '0' ],
[ '0', '1', '0', '1', '1' ],
[ '0', '1', '1', '0', '0' ],
[ '0', '1', '1', '0', '1' ],
[ '0', '1', '1', '1', '0' ],
[ '0', '1', '1', '1', '1' ],
[ '1', '0', '0', '0', '0' ],
[ '1', '0', '0', '0', '1' ],
[ '1', '0', '0', '1', '0' ],
[ '1', '0', '0', '1', '1' ],
[ '1', '0', '1', '0', '0' ],
[ '1', '0', '1', '0', '1' ],
[ '1', '0', '1', '1', '0' ],
[ '1', '0', '1', '1', '1' ],
[ '1', '1', '0', '0', '0' ],
[ '1', '1', '0', '0', '1' ],
[ '1', '1', '0', '1', '0' ],
[ '1', '1', '0', '1', '1' ],
[ '1', '1', '1', '0', '0' ],
[ '1', '1', '1', '0', '1' ],
[ '1', '1', '1', '1', '0' ],
[ '1', '1', '1', '1', '1' ]
]
5ビットで表すことができるすべての組み合わせが出力できてます。