Значит задача такая: Найти одну неизвестную (A) в уравнении где есть бинарные операции: A+B = A XOR B. Я так понял операция XOR может переноситься из правой в левую часть: (A+B) XOR B = A Это неприменимо для операций AND и OR - т.к. по ним нельзя восстановить начальных значений. Подскажите, где можно почитать про эти уравнения.
hypers Подскажите, где можно почитать про эти уравнения. Вот здесь была похожая тема. Найти одну неизвестную (A) в уравнении где есть бинарные операции: A+B = A XOR B. В данном конкретном случае решениями будут все А, для которых A AND B = 0
Stiver Там на книжки ни одна ссылка не работает (2002г. темы. =/) Подскажите плз 1-2 книги для этих уравнений. Stiver Расскажи плиз поподробнее - как этот результат получил.
hypers Хм, странно, Сизый пару дней назад точно открывался.. А так можешь брать любые учебники по теории чисел и алгебре. Только именно "для этих уравнений" никаких общих стандартных методов нет (насколько мне известно). Общий случай всегда сводится к более или менее хитрому побитовому перебору. Да просто на биты посмотри Ну можно еще вывести из A + B = A XOR B + 2* (A AND B)
проще. ксор - та же операция сложения только без переноса единиц в старшие разряды. следовательно, для того чтобы уравнение было верным необходимо чтобы числа не имели единиц в одинаковых разрядах. (в бинарном виде) а эти числа выражаются простым выражением A AND B = 0. т.е. побитное умножение, имея в каждом разряде как минимум в одном из двух чисел 0 мы умножая получаем 0. вроде все понятно, по крайней мере для меня %) спасибо за интересный вопрос