Wartość ciekawego wyrażenia

Wartość ciekawego wyrażenia
K8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

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

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

Idąc od środka mam:

Kopiuj
 (!(!(1) && (0)))
   !(0 ) && 0
       1 && 0
          0
hauleth
  • Rejestracja: dni
  • Ostatnio: dni
1

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

Kopiuj
(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

  • Rejestracja: dni
  • Ostatnio: dni
0

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

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.