2009-05-17 3 views
0

Я пытаюсь построить контрапозиции для следующего утверждения: Если А 0 или B = 0, то A * B = 0.Может кто-нибудь объяснить контрапозиции

Вот моя попытка: Если A * B не 0, то а не 0 или B не равно 0.

оригинальное утверждение верно, но контрапозиция является ложной, так как а, так и B должны быть отличен от нуля для того, чтобы A * B, чтобы быть ненулевым ... Я делаю что-то неправильно?

+0

И как же это помечено C++? –

+0

У C++ есть логика ... и людям, которые любят C++, часто нравятся сложные вопросы (я думаю, это было не очень сложно :)). – Kiril

+0

Обратите внимание, что противопоставление истинного оператора всегда истинно. –

ответ

9

Да.

Контрацептив «Если P тогда Q» означает «Если не Q, то не P».

Так контрапозиции из «Если А равно 0 или В = 0, то А * В является 0» «Если А * В не 0, то нет (А 0 или В = 0)».

И «нет (А 0 или В 0)» является «не равно 0 и В не 0», так что контрапозиции должно быть «Если А * В не 0, то А не является 0 и B не равно 0 ". Только то, что вы ожидаете :-)

0

Да, вы сделали что-то не так. NOT (A или B) = NOT (A) и NOT (B). Вы пренебрегали изменением «или» на «и» при распространении «нет». (De Morgan)

Смежные вопросы