Сложение по модулю

Darkness

Постоялец
Регистрация
21 Янв 2013
Сообщения
146
Реакции
76
Как провести сложение по модулю 6 или 8, без использования булевых типов?
 
можно больше информации? какой язык, пример кода, что не получается и так далее.
в общем, вот алгоритм
Для просмотра ссылки Войди или Зарегистрируйся
 
Дело в том, что зачастую ксор реализован как булевая операция над битами, по сути это правильно, так как на бинарных процессорах этот подход выполняется гораздо быстрее других (процессор то по сути булевой).
PHP:
n xor m == (n && !m) || (!n && m)
Но мне нужна сама общая формула, по которой можно считать xor не только для двоичной системы, но и для систем с другими основаниями.
 
Дело в том, что зачастую ксор реализован как булевая операция над битами, по сути это правильно, так как на бинарных процессорах этот подход выполняется гораздо быстрее других (процессор то по сути булевой).
PHP:
n xor m == (n && !m) || (!n && m)
Но мне нужна сама общая формула, по которой можно считать xor не только для двоичной системы, но и для систем с другими основаниями.
Xor это операция в булевой алгебре, ты не можешь выполнить xor над чем либо кроме 0 и 1.

Сложение по модулю n делается так - (a+b) mod n, где a,b - числа, а mod - операция нахождения остатка от деления.
Например сложение 4 и 9 по модулю 4 (в десятичной системе счисления)
(4+9) mod 4 = 13 mod 4 = 1
 
Последнее редактирование:
Странно, всегда думал, что без булевых типов здесь не обойтись... Недавно тоже составлял серьезную формулу, и задачу удалось решить именно введением булевых типов. Не хотелось бы прослыть некромантом, но интересно, по какой причине возникает именно такое ограничение...
 
Назад
Сверху