Donat un autòmat finit determinista sobre l’alfabet binari i un nombre natural , volem calcular el nombre de paraules de longitud , , , ..., acceptades per l’autòmat.
Per exemple, considerem l’autòmat següent:
Hi ha tres estats , i , dels quals només l’estat és d’acceptació. L’estat és també l’estat inicial.
Aleshores:
De longitud hi ha una única paraula acceptada, la paraula buida.
De longitud només s’accepta la paraula .
De longitud només s’accepten les paraules i .
De longitud només s’accepten les paraules , i .
De longitud només s’accepten les paraules , , , , i .
(de fet, es pot veure que el llenguatge d’aquest autòmat són els múltiples de , representats en binari)
De manera que si aleshores la sortida hauria de consistir en els nombres , , , , .
L’entrada comença amb , el nombre d’estats de l’autòmat finit, que es representen amb nombres naturals entre i . A continuació es descriu la funció de transició de l’autòmat: en primer lloc vénen nombres, corresponents a les imatges dels estats amb el símbol : , , …, . Després vénen un altres nombres, corresponents a les imatges dels estats amb el símbol : , , …, . A continuació vénen zeros i uns, que indiquen per cada estat , …, si és d’acceptació (1) o no (0). L’estat inicial sempre és l’estat 0. Finalment l’entrada acaba amb el nombre , la màxima longitud que es vol considerar.
Per cada valor entre i , escriviu el nombre de paraules acceptades per l’autòmat de longitud . Es garanteix que tots els nombres són més petits que .
Resoleu aquest problema amb programació dinàmica.
Input
3 0 2 1 1 0 2 1 0 0 6
Output
1 1 2 3 6 11 22
Input
1 0 0 1 6
Output
1 2 4 8 16 32 64