Jeśli pamiętasz swoje lata szkolne, możesz pamiętać o poznawaniu tabel prawdy . Wydawały się nudne, ale są podstawą logiki i (niektórzy twierdzą) wszystkich komputerów ...
Problem
Twoim zadaniem, jeśli zdecydujesz się to zaakceptować, jest napisanie programu, funkcji lub widżetu kodu, który może wypisać dane wejściowe z tabeli prawdy.
Wejście
Dane wejściowe będą ciągiem (podobnym do struktury danych) zawierającym instrukcję logiczną, z której zostanie utworzona tablica prawdy. Na przykład:
p ∧ q
Oznacza to p and q(sprzężenie logiczne) i spowoduje:
p q p ∧ q
T T T
T F F
F T F
F F F
Zwróć uwagę na odstępy: element kolumny znajduje się na środku nagłówka
Postacie
Ocena za pomocą znaków, a nie bajtów Znaki porównania logicznego są wyjątkowe i nie zawsze wyglądają. Użyj tych znaków:
Logiczna koniunkcja (AND): ∧U + 2227
Logiczne rozłączenie (OR): ∨U + 2228
Negacja logiczna (NOT) ~lub odpowiednio ¬U + 7e i U + ac
Bonusy
Wszystkie te bonusy są opcjonalne, ale powalą punkty na Twój wynik. Wybierz dowolny.
Logiczna negacja
Logiczna negacja jest jednym operatorem w tabelach prawdy. Jest to odpowiednik !w większości języków opartych na C. To sprawia, że false=> truei odwrotnie. Jest oznaczony symbolem ¬ lub ~ (musisz obsługiwać oba). Wspieranie tego powali 10% twojego wyniku. Musisz jednak dodać dodatkową kolumnę, aby pokazać jej wyniki: Na przykład:
~p ∧ q
wyświetli:
p ~p q ~p ∧ q
T F T F
T F F F
F T T T
F T F F
Ładny druk
Normalny zapis w tabeli jest nudny. Zróbmy to ładnie! Ładny format wydruku p ∧ qjest następujący:
+---+---+-------+
| p | q | p ∧ q |
+---+---+-------+
| T | T | T |
+---+---+-------+
| T | F | F |
+---+---+-------+
| F | T | F |
+---+---+-------+
| F | F | F |
+---+---+-------+
Specjalne szczegóły dla ładnego drukowania:
- W każdej komórce znajduje się 1 dopełnienie spacji
- Wartości komórek są nadal wyśrodkowane
Jeśli ładnie wydrukujesz swoje tabele, z kodu, a następnie pomnóż przez 0,6. Użyj tej funkcji, aby uzyskać ten bonus:
score = 0.6 * code
Przykłady
p ∧ q:
p q p ∧ q
T T T
T F F
F T F
F F F
p ∨ q:
p q p ∨ q
T T T
T F T
F T T
F F F
~p ∧ q:
p ~p q ~p ∧ q
T F T F
T F F F
F T T T
F T F F
~p ∨ q:
p ~p q ~p ∧ q
T F T T
T F F F
F T T T
F T F T
Zasady
- Obowiązują standardowe luki
- Brak zasobów zewnętrznych
- Jeśli masz zamiar złamać zasady, bądź sprytny;)
Najkrótszy kod (w znakach) wygrywa. Powodzenia!
score = 0.6 * (code - 15)=.6 * code - 9
p qi rw tabeli prawdy;)

piq. Jeśli nie zawsze mają te nazwy, możesz pokazać kilka różnych opcji w przykładach testowych. Czy zawsze są jedną literą?