Weiter Artems Antwort, hier ist ein Beweis für die allgemeine Darstellung. Wie Artem zeigt, gibt es eine ganzzahlige Matrix und zwei Vektoren x , y, so dass
s L ( n ) = x T A n y ist .
(Der Vektor x ist der charakteristische Vektor des Startzustands, der Vektor y ist der charakteristische Vektor aller akzeptierenden Zustände und A i j ist gleich der Anzahl der Übergänge von Zustand i zu Zustand j in einem DFA für die Sprache.)Ax,y
sL(n)=xTAny.
xyAijij
Jordan-Theorem besagt , dass über die komplexen Zahlen, eine Matrix mit Blöcken von einem der Formen ähnlich ist
( λ ) , ( λ 1 0A
Wennλ≠0, dann ist dasn
(λ),(λ01λ),⎛⎝⎜λ001λ001λ⎞⎠⎟,⎛⎝⎜⎜⎜λ0001λ0001λ0001λ⎞⎠⎟⎟⎟,…
λ≠0nDie Potenzen dieser Blöcke sind
Hier istwie wir in diesen Formeln bekommen: den Block als schreiben
B=λ+N. Aufeinanderfolgende Potenzen von
Nsind aufeinanderfolgende sekundäre Diagonalen der Matrix. Unter Verwendung des Binomialsatzes (unter Verwendung der Tatsache, dass
λmit
Nkommutiert) ist
Bn=(λ+n)N=λ(λn),(λn0nλn−1λn),⎛⎝⎜λn00nλn−1λn0(n2)λn−2nλn−1λn⎞⎠⎟,⎛⎝⎜⎜⎜⎜λn000nλn−1λn00(n2)λn−2nλn−1λn0(n3)λn−3(n2)λn−2nλn−1λn⎞⎠⎟⎟⎟⎟,…
B=λ+NNλN
Wenn
λ=0 ist, ist der Block nicht potent und wir erhalten die folgenden Matrizen (die Notation
[n=k]ist
1,wenn
n=kundsonst
0):
( [ n = 0 ] ) , ( [ n = 0 ] [ n = 1 ] 0 [ n = 0 ] ),( [ n = 0 ]Bn=(λ+n)N=λn+nλn−1N+(n2)λn−2N2+⋯.
λ=0[n=k]1n=k0([n=0]),([n=0]0[n=1][n=0]),⎛⎝⎜[n=0]00[n=1][n=0]0[n=2][n=1][n=0]⎞⎠⎟,⎛⎝⎜⎜⎜⎜[n=0]000[n=1][n=0]00[n=2][n=1][n=0]0[n=3][n=2][n=1][n=0]⎞⎠⎟⎟⎟⎟
An(nk)λn−k[n=k]
sL(n)=∑ipi(n)λi(n)+∑jcj[n=j],
λi,cjpinsL(n)=∑ipi(n)λi(n).