Donat un autòmat finit determinista sobre l’alfabet binari i un nombre natural m, volem calcular el nombre de paraules de longitud 0, 1, 2, ..., m acceptades per l’autòmat.
Per exemple, considerem l’autòmat següent:
Hi ha tres estats 0, 1 i 2, dels quals només l’estat 0 és d’acceptació. L’estat 0 és també l’estat inicial.
Aleshores:
(de fet, es pot veure que el llenguatge d’aquest autòmat són els múltiples de 3, representats en binari)
De manera que si m=4 aleshores la sortida hauria de consistir en els nombres 1, 1, 2, 3, 6.
Entrada
L’entrada comença amb n, el nombre d’estats de l’autòmat finit, que es representen amb nombres naturals entre 0 i n−1. A continuació es descriu la funció de transició δ de l’autòmat: en primer lloc vénen n nombres, corresponents a les imatges dels estats amb el símbol 0: δ(0, 0), δ(1, 0), …, δ(n−1, 0). Després vénen un altres n nombres, corresponents a les imatges dels estats amb el símbol 1: δ(0, 1), δ(1, 1), …, δ(n−1, 1). A continuació vénen n zeros i uns, que indiquen per cada estat 0, …, n−1 si és d’acceptació (1) o no (0). L’estat inicial sempre és l’estat 0. Finalment l’entrada acaba amb el nombre m, la màxima longitud que es vol considerar.
Sortida
Per cada valor l entre 0 i m, escriviu el nombre de paraules acceptades per l’autòmat de longitud l. Es garanteix que tots els nombres són més petits que 109.
Observació
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