あるものが別のもので割り切れるとき、数のビット間に何らかの関係がありますか?36のビットと9または4または12のビットシーケンスの間、または10(1010)と5(101)の間、または21(10101)と7(00111)の間の関係は何ですか?
ありがとう。文章がおかしいと申し訳ありませんが、ご理解いただければ幸いです。
あるものが別のもので割り切れるとき、数のビット間に何らかの関係がありますか?36のビットと9または4または12のビットシーケンスの間、または10(1010)と5(101)の間、または21(10101)と7(00111)の間の関係は何ですか?
ありがとう。文章がおかしいと申し訳ありませんが、ご理解いただければ幸いです。
私はこれがあなたが求めているものと正確に一致しないことを知っていますが、それは役立つかもしれません。ビットの操作によって2進数の除算を確立するための多くのトリックがあります。たとえば、偶数の2進数の合計から奇数の2進数の合計を引いたものがすべてモジュラス3である場合、2進数は3で割り切れます。これは、バイナリの除算性について説明しているリンクです。
36の例を見てみましょう。
36 = 0010 0100
36
です4 * 9
、つまり
4 = 0100
9 = 1001
(通常の乗算のように)それらを乗算すると、次のようになります。
0100 x
1001
--------
0100
0000
0000
0100
-------
0100100
つまり、基本的に0100 x 1001 = 0010 0100
(もちろん、他の除数のペアについても同じことを繰り返すことができます)
さて、ビットを見るだけで36の約数をすべて取得できる特別な関係はありますか?残念ながら、答えはノーです:)
編集:少なくとも既知の関係はありませんが、誰が知っているか、将来的には賢い数学者がそれを見つけるかもしれません。今日の時点で、答えはまだノーです。
では、ビットを見るだけで「素因数分解」を「すばやく」実行できるかどうかを知りたいですか?
それで頑張ってください!
明らかに、それはとのバイナリ表現を考えると認識できるa
倍数です(これは次のコードを実行するときにハードウェアが行うことですb
a
b
boolean isMultiple = a % b == 0;
)したがって、そのような関係があります。
より具体的な回答を得るために、より具体的な質問をしてください...
最もわかりやすいのは、最下位桁の連続する0の数が、数値nの係数である2の最大の累乗を示していることです。DonnyDが指摘したように(私はそれを知らなかった)、明らかに他のテストがありますが、それらはあまりうまくスケーリングしないと思います。もしそうなら、公開鍵暗号は、一般的に実装されているように、すぐに過去のものになります。
それは、そのような方法が発見/発明できないということではありません。たとえば、量子法を使用して任意の数を簡単に因数分解できることが示されていますが 、実際に動作するシステムを実装できる人は誰もいません。
結論として、私たちはオンライン金融システムと国家安全保障装置をPKIベースの方法に委託しました。これは主に、任意の数の数を因数分解するのは難しいと想定しているためです。しかし、モロンが彼の答えに暗示しているように見えたので、あなたはそれに旋風を与えることを歓迎します。