Итак, я получил его проблему в качестве домашнего задания в своем курсе, когда я решил ее, результат, который я получил, был 1, но везде, где я проверял, решение останавливается на строке 4, если это окончательное решение, но я не могу найти ошибку в моей логике почему-то!
Line1: (a+b+c')(a'b'+c)
Line2: =aa'b'+ba'b'+c'a'b'+ac+bc+c'c
Line3: =0+0+c'a'b'+ac+bc+0
Line4: =c'a'b'+ac+bc
Line5: =c'a'b'+c(a+b)
Line6: =c'+c(a'b'+(a+b))
Line7: =1*(a'b'+(a+b))
Line8: =1
на самом деле Line6 должен быть таким: Line6: =(c'+c)(a'b'+(a+b)) Но ОООООО, теперь я вижу, где логика моего мозга нарушена! Я беру элемент с его дополнением как общие множители (как если бы это были два одинаковых элемента)
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что он касается булевой алгебры/математики, а не непосредственно программирования/кодирования/инструментов программирования/программных алгоритмов.
Вы можете сделать немного лучше, если XOR (^
) является примитивной операцией в вашей системе:
Line1: (a+b+c')(a'b'+c)
Line2: = aa'b'+ba'b'+c'a'b'+ac+bc+c'c
Line3: = 0+0+c'a'b'+ac+bc+0
Line4: = c'a'b'+ac+bc
Line5: = c'a'b'+c(a+b)
Line6: = c'a'b'+c(a'b')'
Line7: = c^(a'b')
Ваша ошибка заключается в следующем:
Line5: = c'a'b'+c(a+b)
Line6: = c'+c(a'b'+(a+b))
Ясно, что строки 5 и 6 не показывают эквивалентных выражений, потому что c=0
удовлетворяет второму независимо от a
и b
, тогда как c=0, a=1
не удовлетворяет первому.
Если вы развернете строку 6: =c'+c(a'b'+(a+b)) = c'+ca'b'+c(a+b), получится ли то же самое, что и в строке 5?