Alternatif cevap: gramer yalnızca yani 6.
S -> aabbbaab | aabbb | bbaab | bb | abbaab | abb.
Artık elle Chomsky Normal Form bunu geri yoğunlaşmasına olabilir, dizeleri sınırlı sayıda üretebilir.
Değiştirme yoluyla, üretilen tüm dizelerin kümesini bulabiliriz. Başlangıçtaki kurallar:
: almak için tekrar bu Expand
S -> AB
-> (aab | lambda) bbA
-> (aab | lambda) bb (aab | lambda).
S -> aB
-> abbA
-> abb (aab | lambda).
:
S -> AB.
S -> aB.
Şimdi içine A ve B genişletildiğini yerine:
S -> AB | aB.
A -> aab | lambda.
B -> bbA.
İlk S
kural bölmek
S -> aabbbaab.
S -> aabbb.
S -> bbaab.
S -> bb.
S -> abbaab.
S -> abb.
Bu sonlu ayarını Chomsky Normal Form olarak değiştirmek için, herhangi bir akıllı faktoring olmaksızın kaba kuvvetle yapılması yeterlidir.
X -> a.
Y -> b.
Şimdi her dize için, biz bir terminal değişkenle ilk harfini ve yeni değişkenlerle kalan harfler tüketmek: Önce iki uç kurallar getirecek. Böyle Örneğin,:
S -> aabbb. (initial rule, not in Chomsky Normal Form)
S -> XC, where X->a and C->abbb.
C -> XD, where X->a and D->bbb.
D -> YE, where Y->b and E->bb.
E -> YY, where Y->b and Y->b.
Biz sadece yeni ara değişkenlerin çok üreten, 6 dizeleri için bu işleme devam edin.
, sen okudun olduğunu kontrol edilecek ilk şey [Ara] (http://en.wikipedia.org/wi Ki/Chomsky_normal_form)? – Nayuki
Açıklama isteği: lambda nedir? Bir terminal sembolü mü? – Nayuki
evet, neden? Son kuralın ne dediği hakkında hiçbir fikrim yok. Lambda, wikipedia'daki Epsilon'dur, Wikipedia sayfasındaki – tehman