Sto cercando di capire cos'è un linguaggio normale. Esistono 3 espressioni regolari composte per il linguaggio normale: concat {AB}
, unione {A+B}
e iterazione {A*}
. Quando sono usati in un modo semplice è chiaro per me come operare con loro. Ma sono frustrato da domande come questa:
Find regular language equivalent to: (0 + 1)*1(0 + 1)*
(01 + 11)*(0 + 1)*
(0 + 1)*(10 + 11 + 1)(0 + 1)*
(1 + 0)*1(1 + 0)*
(0 + 1)*(0 + 1)(0 + 1)*
Come capisco che invece di (0 + 1) * può essere ""
, la lingua equivalente deve avere almeno 1
e qualsiasi numero di simboli prima e dopo di essa.
(01 + 11)*(0 + 1)* can evaluate to "", wrong
(0 + 1)*(10 + 11 + 1)(0 + 1)* can evaluate to 10 or 11 or 1, can be solution
(1 + 0)*1(1 + 0)* has middle one, can be a solution
(0 + 1)*(0 + 1)(0 + 1)* has (0+1) and can be or 0 or 1 or "", wrong
Le mie ipotesi sono corrette?