Запутанное логическое выражение - PullRequest
0 голосов
/ 26 января 2012

С учетом этих значений для логических переменных x, y и z:

x = true
y = false
z = true

Почему следующее логическое выражение оценивается как true?

(x || !y) && (!x || z)

Ответы [ 4 ]

2 голосов
/ 26 января 2012

Заменить на значения x, y и z:

(true || !false) && (!true || true)

Отразить отрицательные значения:

(true || true) && (false || true)

Заменить операторы ORed (еслиодна сторона верна, весь оператор верен):

true && true

Заменить оператор ANDed (если обе стороны верны, весь оператор верен):

true
1 голос
/ 26 января 2012

Верно или Ложно всегда верно. true || false Правда и Правда всегда Истина. true && true

0 голосов
/ 26 января 2012

X имеет значение true в первой группе, в результате чего первая группа имеет значение true.Z имеет значение true во второй группе, в результате чего вторая группа имеет значение true.Поэтому группа 1 и группа 2 верны.

0 голосов
/ 26 января 2012
(x || !y) && (!x || z)
= (T || !F) && (!T || T) <-- plug in x = T, y = F, z = T
= (T || T) && (F || T) <-- !F = T, !T = F
= T && T <- T || T = T, F || T = T
= T <- T && T = T

На самом деле, пожалуйста, расскажите нам, что так смущает;Я немного сбит с толку, что вы находите это совсем непонятным.

...