Re[2]: как выразить конъюнкцию через арифметические действия
От:
Аноним
Дата:
10.03.05 10:05
Оценка:
Здравствуйте, Reunion, Вы писали:
R>Здравствуйте, LiIon, Вы писали:
LI>>Помогите чайнику! LI>>Нужно выразить основные булевые функции(and, or, xor, not) через арифметические действия.
R>Если true = 1, а false = 0 то: R>a and b = min(a, b) R>a or b = max(a, b) R>not a = 1 — a R>xor соответственно выражаешь через эти три
R>С другой стороны если пользоваться булевой алгеброй, то x + x = 0, x*x = x и воспользовавшись правилом разложения булевой функции в булевый многочлен получаем: R>not x = x + 1 R>x1 xor x2 = x1 + x2 R>x1 or x2 = x1*x2+x1+x2 R>x1 and x2 = x1*x2
я извиняюсь, это подойдет если обрабатывать каждое число по битам, может я не правильно в начале выразился, мне нужен алгоритм для представления например (X and (Y or Z)), где X,Y,Z любые произвольные числа.