[old] Boolean Algebra

[old] Boolean Algebra

In matematica ed in logica matematica l' algebra Booleana è una branca dell'algebra in cui i valori della variabili sono vero o falso, tipicamente denotati rispettivamente da 1 o 0. Mentre nell'algebra elementare i valori delle variabili sono numeri e le operazioni principali sono addizione e moltiplicazione, nell'algebra Booleana le operazioni principali sono la congiunzione (denotata ∧), la disgiunzione (denotata ∨) e la negazione (denotata ¬).

In questa missione devi implementare alcune operazioni booleane:
- "conjunction" (congiunzione) denotata x ∧ y, soddisfa x ∧ y = 1 se x = y = 1 ed x ∧ y = 0 altrimenti.
- "disjunction" (disgiunzione) denotata x ∨ y, soddisfa x ∨ y = 0 se x = y = 0 ed x ∨ y = 1 altrimenti.
- "implication" (implicazione materiale) denotata x→y, può essere descritta come ¬ x ∨ y. Se x è vero allora x → y prende il medesimo valore di y. Se x è falso allora il valore di y può essere ignorato; l'operazione deve comunque restituire qualche valore di verità e cis ono solo due possibili scelte, dunque il valore di ritorno è quello che implica di meno, cioè vero.
- "exclusive" (disgiunzione esclusiva) denotata x ⊕ y, può essere descritta come (x ∨ y)∧ ¬ (x ∧ y). Esclude la possibilità che x ed y siano entrambi veri. Definita in termini aritmetici è la addizione modulo 2, per la quale 1 + 1 = 0.
- "equivalence" (equivalenza) denotata x ≡ y, può essere descritta come ¬ (x ⊕ y). È vera solo quando x ed y hanno lo stesso valore.

Ecco la tabella di verità per queste operazioni:

 x | y | x∧y | x∨y | x→y | x⊕y | x≡y |
--------------------------------------
 0 | 0 |  0  |  0  |  1  |  0  |  1  |
 1 | 0 |  0  |  1  |  0  |  1  |  0  |
 0 | 1 |  0  |  1  |  1  |  1  |  0  |
 1 | 1 |  1  |  1  |  1  |  0  |  1  |
--------------------------------------

Ti vengono dati due valori booleani x ed y come 1 o 0 e ti viene dato il nome di una delle operazioni come descritto in precedenza. Devi calcolare il valore e restituirlo come 1 o 0.

Input: Tre argomenti. X ed Y come 0 o 1. Il nome di un'operazione come una stringa.

Output: Il risultato come 1 o 0.

Esempio:

boolean(1, 0, "conjunction") == 0
boolean(0,...
You should be an authorized user in order to see the full description and start solving this mission.
19