当一个数字被另一个数字整除时,它们之间是否有任何关系? 36位和9位或4位或12位之间,或10(1010)和5(101),或21(10101)和7(00111)之间的关系是什么?
感谢。如果某句话不正确,我很抱歉,但我希望你明白我的意思。
答案 0 :(得分:4)
我知道这不是你所要求的,但它可能会有所帮助。通过操作位来建立二进制数可分性有许多技巧。例如,如果二进制数的偶数二进制位的总和减去其奇数二进制位的总和,则所有模数3都为零,二进制数可被三除数。这是一个讨论binary divisibility的链接。
答案 1 :(得分: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的所有除数?答案,唉,不是:)
编辑:至少没有已知的关系但是,谁知道,将来也许某个聪明的数学家会找到一个。截至今天,答案仍然是否定的。答案 2 :(得分:1)
所以你想知道你是否可以通过查看位来'快速'做Integer Factorization吗?
祝你好运!
答案 3 :(得分:0)
显然,a
是b
的倍数,可以通过a
和b
的二进制表示来识别(这是执行以下代码时硬件的作用)
boolean isMultiple = a % b == 0;
)因此存在这样的关系。
提出更具体的问题以获得更具体的回复...
答案 4 :(得分:0)
最容易看到的是,最低有效数字中连续0的数字表示2的最大幂,这是你的数字n的一个因子。显然还有其他测试,正如DonnyD指出的那样(我不知道那个),但我预计它们的规模不会很好。如果他们这样做,公共密钥密码术(通常会实施)将很快成为过去。
这并不是说无法发现/发明这样的方法。例如,已经证明可以很容易地考虑任意大数using quantum methods,但实际上没有人能够实现工作系统。
最重要的是,我们已经将我们的在线金融系统和国家安全设备委托给基于PKI的方法,主要是因为我们假设保理数字对于任意大数字很难。但是,正如莫伦似乎暗示他的回答,欢迎你给它一个旋转。