[解決済み] 2進数が3で割れているかどうかを知るには?
質問
2進法において、3で割るときの割り算のルールはあるのでしょうか?
例:10進数の場合、桁の和を3で割ると、その数は3で割られます。
15 -> 1+5 = 6 -> 6
が3で割れるので、15が3で割れる。
bool flag = (i%3==0); は、私が求めている答えではありません。私は、10進法のように人間にとって簡単にできるものを探しています。
どのように解決するのですか?
こちらのサイトをご参照ください。 2進数が3で割り切れるかどうかの見分け方
基本的には、0でない奇数位置のビットと0でない偶数位置のビットの数を数えます。 右から . その差が3で割り切れるなら、その数は3で割り切れるということです。
例えば
15 = 1111
で、非ゼロのビットが奇数2個と偶数2個あります。その差は0です。
15
で割り切れる。
3
.
185 = 10111001
であり、奇数の非ゼロビットが2個、偶数の非ゼロビットが3個あります。その差は1です。
185
で割り切れない。
3
.
説明
を考えてみましょう。
2^n
の値です。私たちは、以下のことを知っています。
2^0 = 1
は合同である
1 mod 3
. したがって
2^1 = 2
は一致する
2*1 = 2
mod 3です。このパターンを続けると
2^n
ここで、nは奇数である。
2^n
は合同である
1 mod 3
であり、偶数の場合は合同である
2 mod 3
というのは
-1 mod 3
. したがって
10111001
は合同である
1*1 + 0*-1 + 1*1 + 1*-1 + 1*1 + 0*-1 + 0*1 + 1*-1
mod 3 は合同である
1 mod 3
. したがって、185は3で割り切れるものではありません。
関連
-
[解決済み] クイックソートとヒープソートの比較
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 山積みされた靴下を効率よく組み合わせるには?
-
[解決済み] NaN値をチェックするにはどうすればよいですか?
-
[解決済み] 簡単な面接問題が難しくなった:1~100の数字が与えられたとき、ちょうどk個の数字が欠けていることを見つけなさい。
-
[解決済み] JavaScriptで、数値が精度を失うことなく到達できる最も高い整数値は何ですか?
-
[解決済み] 32ビット整数のセットビットの数を数えるには?
-
[解決済み] 円周率の計算が正確かどうかを判断するにはどうしたらよいですか?
-
[解決済み] Python int to binary string?
-
[解決済み] ある数字が2の累乗かどうかを確認する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Quickselectの時間の複雑さを説明する
-
[解決済み】クイックソートとヒープソートの比較
-
[解決済み】決定木(比較ソートアルゴリズム)の葉の最短の深さ)
-
[解決済み] アルゴリズムAの実行時間は少なくともO(n²)である - なぜ無意味なのか?
-
[解決済み] ベルマンフォードとダイクストラの比較。どのような状況下でベルマンフォードが優れているか?
-
[解決済み] 2つのNFAの交点の求め方
-
[解決済み] 解いてみてください。T(n) = T(n-1) + n [重複] とする。
-
[解決済み] ラジアンを度数に変換する方法は?
-
[解決済み] グラフが半連結であるか否かを判定する
-
[解決済み] 線形時間でのソート?[クローズド]