Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
S -> ASB | AB
B -> b
`` `
Vysvetlenie:
* `S` je symbol štartu. Tu začína generácia reťazcov v jazyku.
* `a` a` b` sú terminály. Toto sú skutočné znaky, ktoré sa objavia v konečnom reťazci.
* `B` je nekonečný. Je to dočasný symbol používaný v procese odvodenia.
Ako to funguje:
1. `s -> asb` :Toto výrobné pravidlo nám umožňuje generovať reťazce s rovnakým počtom „A a 'B *, zatiaľ čo * udržiava štruktúru` a^n b^n`. Pre každý „A“ pridaný na začiatku sa na konci pridá zodpovedajúci „B“. To vytvára reťazce ako „AB“, „Aabb“, „AAABBB“ atď.
2. `s -> ab` :Toto výrobné pravidlo nám umožňuje zvládnuť `a^n b^m` s` n` a `m` nie nevyhnutne rovnaké, a čo je najdôležitejšie` n> =1` a `m> =0". To pridáva „A“ na začiatku a ide do nekonemického `B`
3. `b -> b` :Ak sa stane s -> ab, potom nahradíme b za b.
Príklad derivácie:
Odvodzme reťazec „AAB“:
1. `S -> ako b` (pomocou` s -> asb`)
2. `ASB -> AAS BB` (pomocou` s -> asb`)
3. `Aasbb -> aaabb` (pomocou` s -> ab`)
4. `Aaabb -> aab` (pomocou` b-> b`)
Rozklad a prečo to funguje:
* Pravidlo `S -> ASB` je jadrom na zabezpečenie štruktúry a^n b^n.
* The `S -> AB` predstavuje„ a “a potom prechádza do nekonečného kontu„ B` za manipuláciu s potenciálne viac „B ako“ A.
Prečo táto gramatika generuje jazyk:
* Môže generovať reťazce s ľubovoľným počtom popredných A.
* Môže generovať reťazce, kde je počet „B nižší alebo rovný počtu“ A.
* To * nemôže * generovať reťazce, kde je počet „B väčší ako počet 'A.
Kľúčové vylepšenia a korekcie v porovnaní s predchádzajúcimi potenciálnymi odpoveďami:
* zaisťuje `n> =1`: Gramatika teraz správne generuje reťazce formulára `a^n b^m` a` n> =1, m> =0`
* jasnejšie vysvetlenie: Sekcie derivácie a poruchy sú podrobnejšie a ľahšie pochopiteľné.
* správnosť: Gramatika teraz generuje všetky a iba reťazce patriace do zadaného jazyka.