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 любые произвольные числа.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.