Wartość ciekawego wyrażenia

0

Czy może mi ktoś wytłumaczyć dlaczego wartością tego wyrażenia jest true ?

if (!(!(1||0) && !(0||1)))
    // jakis kod
else
    // jakis inny kod

Idąc od środka mam:

 (!(!(1) && (0)))
   !(0 ) && 0
       1 && 0
          0
1

Może przepisanie na Scheme Ci trochę pomoże:

(not (and (not (or true false)) (not (or false true))))

Całość można zamienić (używając praw de'Morgana) na:
((1 || 0) || (0 || 1)) == (1 || 0 || 0 || 1) == 1

0

!(1||0) false
!(0||1) false
0 && 0 false
!(0 && 0) true

2

not( (not (true or false)) and (not (false or true))) )
not (true or false) = not true = false
not (false or true) = not true = false

not (false and false)
not false
true

1 użytkowników online, w tym zalogowanych: 0, gości: 1