Отрицание требует от меня часов проб и ошибок, пока ничего не сломается, любой метод отрицания, кроме интуитивно? Например:Как переписать отрицательную строку?
//x and y are whole numbers
!((x<9) && (y<=(8-x)))
((x>8) || (y>(8-x)))
Отрицание требует от меня часов проб и ошибок, пока ничего не сломается, любой метод отрицания, кроме интуитивно? Например:Как переписать отрицательную строку?
//x and y are whole numbers
!((x<9) && (y<=(8-x)))
((x>8) || (y>(8-x)))
Проще всего игнорировать вопросы о домене ценностей и рассматривать это как вполне логичную проблему. Тогда мы можем разбить его на такие случаи, как:
!(A || B) ~= !A && !B
!(A && B) ~= !A || !B
!(!A) ~= A
!(x > y) ~= x <= y
!(x >= y) ~= x < y
Первые два может быть легко расширен:
!(A || B || C || D || ...) ~= !A && !B && !C && !D && ...
!(A && B && C && D && ...) ~= !A || !B || !C || !D || ...
Так, для одного из примеров, мы имеем:
!((x < 9) && (y <= (8-x)))
!(x < 9) || !(y<=(8 - x)
(x >=9) || (y > (8 - x))
Мы можем оставить это как это, но поскольку у вас есть дополнительная информация о домене («x и y - целые числа»), вы можете включить его, чтобы вернуть немного менее конкретный, но достаточно точный в контексте ответ, такой как
(x > 8) || (y > (8 - x))
Вам нужно будет принять решение в каждом конкретном случае, стоит ли делать дополнительные шаги. То, что он может получить, является несколько уменьшенной базой кода, оно также может потеряться в менее прозрачной ссылке на исходный формат.
Спасибо за редактирование @ ajax333221; плохие вещи случаются, когда я отвечаю поздно ночью! :-) –
Узнать и понять основную логику высказываний: http://editthis.info/logic/Propositional_Logic – scrappedcola