Salve ragazzi,
il mio problema è quello di verificare quanti lemmi possono essere generati da una grammatica (minori di un certo limite) confrontando le produzioni che possono essere presenti in più array.
Ad esempio, la grammatica ha come simbolo iniziale S e con produzione AB.
Mentre A ha tre produzioni: a | aa | aaa
così come B: b | bb | bbb.
Avendo limite 4, posso generare le seguenti stringhe:
ab, abb, aab.
Partendo dal simbolo iniziale (che mi inserisce nel lemma solo i simboli terminali, ossia le lettere minuscole) ho provato ad implementare un metodo ricorsivo (purtroppo i due for annidati non bastano) ma non riesco a creare le stringhe successive a quelle che cominciano per a (in pratica non ricicla sul primo array per un problema di return, ma se vado a modificarlo mi sballa tutto completamente).
In questo caso, genero solamente ab e abb ma non aab.
In caso posso mandarvi una copia del codice per MP.
Grazie a chi vorrà aiutarmi.

Rispondi quotando