Я проводил рефакторинг старого кода и столкнулся с несколькими условиями IF, которые были слишком сложными и длинными, и я уверен, что их можно упростить. Я предполагаю, что эти условия сильно выросли из-за более поздних модификаций.
В любом случае, мне было интересно, знает ли кто-нибудь из вас о хорошем онлайн-упрощении, которое я могу использовать. Меня не интересует какой-либо конкретный язык, просто упрощение, которое, например, могло бы принять:
((A ИЛИ B) И (! B И C) ИЛИ C)
И дайте мне упрощенный вариант выражения, если таковой имеется.
Я рассмотрел другие похожие вопросы, но ни один из них не указал мне на хороший упрощитель.
Спасибо.
boolean-logic
boolean-expression
мохаррас
источник
источник
Ответы:
Вы можете попробовать Wolfram Alpha, как в этом примере, на основе ваших данных:
http://www.wolframalpha.com/input/?i=((A%20OR%20B)%20AND%20(NOT%20B%20AND%20C)%20OR%20C)&t=crmtb01&f=rc
источник
NOT C AND NOT A OR NOT B AND NOT C AND NOT D AND NOT A OR NOT B AND NOT C AND D AND A OR B AND C AND NOT D AND NOT A OR B AND C AND D AND A
.Try
Logic Friday 1
It включает инструменты Калифорнийского университета (Espresso и misII) и позволяет использовать их с графическим интерфейсом пользователя. При желании вы можете вводить логические уравнения и таблицы истинности. Он также имеет графическую схему ввода и вывода.Минимизация может быть двухуровневой или многоуровневой. Двухуровневая форма дает минимальную сумму продуктов. Многоуровневая форма создает схему, состоящую из логических вентилей. Типы ворот могут быть ограничены пользователем.
Ваше выражение лица упрощается до
C
.источник
Я обнаружил, что The Boolean Expression Reducer намного проще в использовании, чем Logic Friday. Кроме того, он не требует установки и является мультиплатформенным (Java).
Также в Logic Friday выражение
A | B
просто возвращает 3 записи в таблице истинности; Я ожидал 4.источник