2013-03-17 4 views
0

Поскольку ((NOT A) XOR B) и A → B («iff .... then») (~ A → ~ B) логически одинаковы (например, логин не может произойти, если не выполняется аутентификация) имеет ли это какие-либо практические использовать или просто логическую тавтологию, и программист может произвольно решить, где использовать XOR и где использовать if ... then?Когда использовать XOR и когда использовать IFF?

Пример перезапись оплаты → доставки ("тогда и только тогда платеж() == 'полный', то доставка()") переписаны ((НЕ платеж()) доставка XOR)()

EDIT: таблица истинности

А: Б оплаты : доставка

 
A B A' (A→B) (A' XOR B) (A' OR B) 
T T F T  T   T 
T F F F  F   F 

в случае, если отказ

 
A B A' (A→B) (A' XOR B) (A' OR B) 
T F F F  F   F 

И что случай, когда A является ложным, является просто ложным B, и все приведенное ниже означает, что B является ложным (поскольку NOT A).

 
A B A' (A→B) (A' XOR B) (A' OR B) 
F T T T  F   T 
F F T T  T   T 

или goal → score^¬goal→¬score так что есть детерминизм и нет другого пути (вы не можете выиграть, если вы не сделаете цель).

+2

Я не уверен, что они такие же, по крайней мере, не на императивном языке ... например. как бы ((НЕ А) XOR B) выбрать один из двух разных путей кода? –

+0

Я еще не предполагал какой-либо язык (может быть, пролог или другое правило, основанное на упрощении того, что сделано), но если мы просто подумаем, что 'passwordmatch → login', мы можем написать такую ​​логику, как XOR, то есть' ((NOT passwordmatch) XOR login) ' –

ответ

1

A → B эквивалентно (A 'ИЛИ B). Они логически одинаковы и могут использоваться взаимозаменяемо.

Построить таблицы истинности для A → B и (A 'XOR B), и вы увидите, что они не логически эквивалентны.

EDIT: Вот таблица истинности

EDIT2: Обновление таблицы истинности с (B тогда и только тогда А), что да, логически эквивалентно (A»XOR B) и могут быть использованы как взаимозаменяемые.

 
A B A' (A→B) (A' XOR B) (A' OR B) (B iff A) 
T T F T  T   T   T 
T F F F  F   F   F 
F T T T  F   T   F 
F F T T  T   T   T 
+0

Спасибо! '~ A → ~ B^A → B' - это именно то, о чем я говорю. Не может быть B без A. –

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