Scrivi un'espressione booleana, guarda il suo albero di parsing, calcola altezza h(F) e lunghezza l(F) — e poi prova a ricostruire la formula risalendo dalle foglie alla radice.
Vai allo strumento ↓Cos'è un albero di parsing
Una formula booleana non è solo una stringa di simboli: ha una struttura ad albero che rispecchia l'ordine in cui gli operatori vengono effettivamente applicati. La radice è sempre l'operatore applicato per ultimo (quello a precedenza più bassa, fuori da ogni parentesi); le foglie sono variabili o costanti.
La radice ∧ ha due figli: la foglia a (a sinistra) e la foglia b (a destra).
| Operatore | Precedenza |
|---|---|
| ¬ | più alta |
| ∧ | ↓ |
| ∨ | ↓ |
| ⊕ | ↓ |
| → | ↓ |
| ↔ | più bassa |
La radice dell'albero è sempre l'operatore a precedenza più bassa tra quelli non già "chiusi" da parentesi: è l'ultimo che viene applicato leggendo la formula.
Qualunque sia la precedenza, il contenuto di una coppia di parentesi viene risolto (cioè diventa un sotto-albero completo) prima di essere combinato con il resto della formula.
💬 In ¬(a∨b)∧(c→a), sia (a∨b) che (c→a) sono sotto-alberi "chiusi" dalle parentesi prima ancora di applicare ¬ e ∧.
! / not& / and| / or^ / xor-> / impl<-> / iffScrivi un'espressione e clicca
Costruisci albero
Costruisci prima un albero nella sezione qui sopra,
poi torna qui per ricostruirlo.
Due grandezze che descrivono un albero di parsing: l'altezza (quanto è "profondo") e la lunghezza (quanti nodi contiene in totale). Entrambe si definiscono per induzione sulla struttura della formula — esattamente come l'albero stesso è costruito.
Caso base — F è una variabile o una costante: h(F) = 0.
F = ¬G: h(F) = h(G) + 1.
F = G∧H (oppure ∨, ⊕, →, ↔): h(F) = 1 + max(h(G), h(H)).
💬 È il numero di "livelli" da scendere dalla radice fino alla foglia più lontana.
Caso base — F è una variabile o una costante: l(F) = 1.
F = ¬G: l(F) = l(G) + 1.
F = G∧H (oppure ∨, ⊕, →, ↔): l(F) = l(G) + l(H) + 1.
💬 È il numero totale di nodi disegnati nell'albero: variabili, costanti e connettivi.