Sebenarnya, Anda masih dapat memperoleh rumus penghitungan untuk ekspresi reguler yang tidak ambigu dengan bintang-bintang Kleene di dalamnya.
Diberi definisi induktif dari ekspresi reguler sebagai:
e∈Re:=x∈Σ∣e0 e1∣e0+e1∣e∗
Pertimbangkan terjemahan berikut [[⋅]]:Re→C(z) yang mengambil ekspresi reguler dan menerjemahkannya ke dalam fungsi rasional bernilai kompleks:
[[x∈Σ]][[e0 e1]][[e0+e1]][[e∗]]=z=[[e0]]×[[e1]]=[[e0]]+[[e1]]=11−[[e]]
Kami dapat menunjukkan bahwa terjemahan ini mengembalikan ekspresi rasional dengan melakukan induksi struktural e, dan mencatat bahwa semua operasi yang digunakan di sisi kanan menjaga rasionalitas.
Misalkan kalimat biasa e yang kita masukkan tidak ambigu, maka kita akan menemukan bahwa fungsi rasional dilambangkan dengan [[e]]∈C(z) sebenarnya adalah fungsi pembangkit untuk keluarga kata-kata yang diterima oleh bahasa yang mendasarinya e, diurutkan berdasarkan panjangnya.
Misalnya, pertimbangkan bahasanya (a∗b)∗, yang mendefinisikan bahasa run dari a dibatasi oleh b. Sekarang, ekspresi reguler ini tidak ambigu, sehingga kami dapat menjalankan trik terjemahan kami:
[[(a∗b)∗]]=11−[[a∗b]]=11−([[a∗]]×[[b]])=11−(11−[[a]]×z)=11−z1−z=12+12−4z
Ternyata, mengingat fungsi pembangkit di atas, ekstraksi koefisiennya akan menjadi
[zn][[(a∗b)∗]]=2n−1+δ(n)2
dimana
δ(n)={10if n=0otherwise
Bahkan, sejak terjemahan kami [[⋅]] menghasilkan fungsi rasional, kita dapat menggunakan dekomposisi fraksi parsial untuk membuat rumus enumerasi untuk setiap ekspresi reguler yang tidak ambigu.
Misalkan Anda memiliki fungsi rasional yang tidak dapat direduksi
r(z)+p(z)q(z)
dimana
r,p,q adalah polinomial, maka Anda dapat menguraikannya menjadi
r(z)+C0z−q∗0+⋯+Cnz−q∗n
dimana
q∗k adalah akar dari
q(z). Ada sedikit kasus sudut teknis (seperti banyaknya akar, dll), tetapi relatif mudah dilakukan ekstraksi koefisien pada ungkapan di atas:
[zn]Cz−q∗=C×q∗−n
Bahkan, dekomposisi fraksi parsial menggeneralisasi ke fungsi rasional multivariat, sehingga Anda benar-benar dapat membuat rumus penghitungan untuk kueri seperti "Berapa banyak kata yang ada di mana ada n a
dan m b
s? "
Sayangnya, sejauh mana metode ini akan berguna berakhir ketika Anda memiliki ekspresi ambigu.