Неожиданный результат в Bitwise-хаке для модульного сложенияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Неожиданный результат в Bitwise-хаке для модульного сложения

Сообщение Anonymous »

Я смотрел видео MIT OCW о битовых хаках и наткнулся на метод модульного сложения, который, кажется, дает неожиданный результат (Видео с TimeStamp)
. Метод описывается следующим образом:
Модульное сложение: (x + y) % n
Логическая формула:

Код: Выделить всё

z = x + y
r = z - (n & - (z >= n))
Вот как я реализовал код:

Код: Выделить всё

x = 10  # 1010
y = 5   # 0101
z = x + y # 1111
n = 6   # 0110
r = z - (n & -(z>=n))   # 1001
print(r)
Я ожидал, что результат
(10+5) по модулю 6 будет 3, но вычисление возвращает 9.
И что действительно ли выражение r = z - (n & -(z >= n)) вычисляется, и могу ли я изменить этот подход для правильного вычисления
(𝑥+𝑦)mod 𝑛 ?

Существуют ли какие-либо другие эффективные побитовые методы модульной арифметики, о которых мне следует знать?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -adddition
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Shift "<<" и Bitwise "&" Operators Procedence. Почему он не компилируется?
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Shift "<<" и Bitwise "&" Operators Procedence. Почему он не компилируется?
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Самый быстрый способ поднять Int в Uint32 Bitwise?
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Реализация сложения и вычитания BigInteger С#
    Anonymous » » в форуме C#
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • Код для сложения двух двоичных чисел с использованием квантовых вычислений без ошибок
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»