Logică și structuri discrete - Exerciții

Tema se predă asistentului prin e-mail (subiect: LSD tema 7) până miercuri ora 23 (scrisă după standardele afișate pe pagina cursului).

1. Polaritatea propozițiilor Scrieți o functie care ia ca parametru o formulă propozițională și returnează un triplet de mulțimi disjuncte de propoziții: cele care apar doar pozitiv (sub un număr par de negații), doar negativ (sub un număr impar de negații) și cele care apar în ambele moduri.
Cerințe și indicații de rezolvare Rezolvați problema folosind un dicționar care reține modul în care a fost întâlnită o propoziție. Cele două proprietăți (apare pozitiv; apare negativ) sunt independente, și pot fi reprezentate fiecare pe un bit al unui număr (de exemplu, bitul 0 indică apariția pozitivă, bitul 1 apariția negativă).
Valoarea 1 (20) înseamnă deci "apare doar pozitiv", 2 (21) înseamnă "apare doar negativ", iar 3 (SAU pe biți, operatorul lor între cele două) înseamnă că apare în ambele moduri.
(Această tehnică se folosește pentru reprezentarea eficientă a unei mulțimi, în acest caz, o mulțime de proprietăți independente).
Când întâlnim o propoziție cu o anumită polaritate, actualizăm valoarea din dicționar (dacă există!) cu un SAU logic pe biți (lor) între valoarea existentă și polaritatea curentă (reprezentată prin 20 sau 21). Reprezentăm astfel faptul că faptul că propoziția apare într-un anumit fel (bitul respectiv e 1) dacă a fost întâlnită în acest fel în trecut SAU apare în acest fel acum. Operația lor se face independent și împreună pentru toți biții (în acest caz, sunt de interes doar biții 0 și 1).


Marius Minea
Last modified: Sat Nov 7 10:00:00 EET 2015