Wait a moment...

モチベーション向上タイム【2本目】

nem0.85xem (1)
196
0
2019-09-04 07:45:47
モチベーション向上タイム【2本目】

ビット集合の使い方?作り方を試して見た!

 

javaでビット演算って早いか、遅いか知らんけど。まぁjavaの中では早いやろ。

 

イメージ

{a,b,c}この三文字を使った組み合わせって何通り有りますか?

 

こたえは、空集合含め8通り

 

{}

{a},{b},{c}

{a,b},{b,c},{a,c}

{a,b,c}

的な感じです。

 

まあ、これくらいなら

回答用紙があれば答えられますね。

 

じゃあ、アルファベット26文字でやってみて!!

はい、やる気しない。

 

シンプル目に書くと

for (int i=0; i< 1<<文字数; i++){

    for(int j=0; j<文字数; j++) {

       if ((1 & i >> j) == 1) { 保管 }

    }

出力

}

 

こんなんですな。シンプルに書けば。

色々指摘を受ける書き方だがまぁいい。

 

1<<文字数(3文字 abc)

1を右に文字数分シフトします。

0001が1000になる。

下3桁が111の次が1000なのでbit表現的には、もうこのiを出力するだけで

答えは出来ています。

 

内側の処理は、

何bit目のフラグが立ってるか

調べてるだけです。

 

 

自己満記事の完成です。

人に説明するの元から苦手ですが

書く事で頭がスッキリするので

お試しください。

 

前後の記事
この記事を書いた人
平成生まれの私も、二児の父になりました。