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?