Если вы представите таблицу истинности для вашей функции, вы получите что-то вроде этого:
ABC f
0 0 0 0
...
1 0 0 1
...
1 1 1 0
Таким образом, мы можем использовать булевы логические операторы и создать следующее эквивалентное представление:
Истинно для f = A и Not (B) и Not (C)
Эта формула возвращает истину, только если A = 1, B = 0, C = 0 и ложь любым другим способом.Переведите его в двоичное представление:
Истина равна 1, ложь равна 0 и равна * или равна +, а не L равна (1-L)
И вы получите:
f = A * (1-B) * (1-C)
Если вы столкнетесь с некоторыми более сложными условиями, вы можете сделать сложное выражение.Нарисуйте свою таблицу истинности, составьте аналогичное выражение «ands» для каждой строки, где f = 1, и поставьте между ними «или».Как это: (A и не (B) и C) или (не (A), не (B), C) или ....
Есть более эффективные способы сделать это, эффективные в смысле создания более коротких логических выражений.Если это важно для вас, вы должны взглянуть на технику карт Карно.https://en.m.wikipedia.org/wiki/Karnaugh_map (я думаю, что статья вики слишком сложна для этой простой операции. Может быть, пример YouTube продемонстрирует это лучше)
В противном случае она действительно должна охватывать все, что вам нужно:)