Вопрос об отношениях между двумя числами - PullRequest
3 голосов
/ 27 июня 2010

Существует ли какая-либо связь между битами чисел, когда одно делится на другое? Какова связь между битами 36 и битовыми последовательностями 9 или 4 или 12, или между 10 (1010) и 5 ​​(101), или 21 (10101) и 7 (00111)?

Спасибо. Извините, если какое-то предложение неверно, но я надеюсь, вы понимаете, что я хочу.

Ответы [ 5 ]

4 голосов
/ 27 июня 2010

Я знаю, что это не совсем то, что вы спрашиваете, но это может быть полезно.Существует много приемов установления делимости двоичных чисел путем манипулирования битами.Например, двоичное число делится на три, если сумма его четных двоичных битов минус сумма его нечетных двоичных битов, весь модуль 3 равен нулю.Вот ссылка, обсуждающая бинарную делимость .

3 голосов
/ 27 июня 2010

Давайте рассмотрим пример 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 просто посмотрев на его биты?Ответ, увы, нет:)

РЕДАКТИРОВАТЬ: по крайней мере нет никакого ИЗВЕСТНОГО отношения, но, кто знает, в будущем, возможно, какой-нибудь умный математик найдет его.На сегодняшний день ответ до сих пор нет.

1 голос
/ 27 июня 2010

Итак, вы хотите знать, можете ли вы «быстро» выполнить Целочисленную факторизацию , просто взглянув на биты?

Удачи с этим!

0 голосов
/ 27 июня 2010

Самое простое увидеть - это число последовательных 0 в младших разрядах, обозначающее наибольшую степень двух, которая является фактором вашего числа n.Очевидно, есть и другие тесты, как указывал DonnyD (я этого не знал), но я ожидаю, что они не очень хорошо масштабируются.Если бы они это сделали, криптография с открытым ключом, как это обычно делается, быстро ушла бы в прошлое.

Нельзя сказать, что такие методы не могут быть обнаружены / изобретены.Например, было показано, что произвольно большие числа можно легко вычислить с помощью квантовых методов , но никто никогда не был в состоянии реализовать работающую систему.

Суть в том, что мы доверилинаша финансовая онлайн-система и аппарат национальной безопасности используют методы, основанные на PKI, в первую очередь потому, что мы предполагаем, что факторинг цифр сложен для сколь угодно больших чисел.Но, как казалось, Морон подразумевал в своем ответе, вы можете дать ему вихрь.

0 голосов
/ 27 июня 2010

Очевидно, что a - это кратное b, которое можно распознать, учитывая двоичные представления a и b (это то, что аппаратные средства делают при выполнении следующего кода

boolean isMultiple = a % b == 0;

) и, следовательно, существует такая связь.

Задайте более конкретный вопрос, чтобы получить более конкретный ответ ...

...