Podemos describir los números válidos con una FSA utilizando los dígitos como alfabeto (el límite superior en el número aún no está incluido):
Aquí los números negros en las flechas indican el símbolo que se utiliza para la transición. Si no hay tal número de cada uno de los símbolos que no se usa con otra transición es válida. Los números rojos indican el número de símbolos que ese resultado en el estado de destino.
Los estados
Una: No 3
encontrado todavía (estado inicial)
B: 3
encontrado pero no 4
se encuentra a la derecha de la primera 3
.
C: 4
se encuentra a la derecha de un 3
(estado final)
Podemos representar esto como un gráfico con la siguiente matriz de adyacencia (ponderado con el número de símbolos que se pueden utilizar para cada transición):
$$A=\begin{bmatrix}9&1&0\\0&9&1\\0&0&10\\\end{bmatrix}$$
Note that any path in this graph starting at vertex 1 corresponds to a number and every path also ending at vertex 3 is one of the numbers we want to count.
We only need to consider numbers 0, ..., 9999 since 10000 obviously doesn't fit the pattern. Therefore we only need to consider words with exactly 4 symbols ($\rightarrow$ path of length 4 in the graph).
Since we've chosen the edge weights of the graph appropriately the number to calculate can be directly read from last entry in the first row of the matrix
$$A^4=\begin{bmatrix}6561&2916&523\\0&6561&3439\\0&0&10000\\\end{bmatrix}$$