تالار گفتمان مانشت

نسخه‌ی کامل: متمم زبان L1=a^n b^m :n>=4,m<=3
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
من نمیدونم چجوری این متمم رو حساب میکنن میشه یکی از دوستان زبان زیر رو متمم کنه و توضیح بده. ممنون
کد:
L1={anbm :n>=4,m<=3}
این تمرین کتاب لینزه فصل سوم :


یک رشته در L نیست اگر به شکل [tex]a^{n}b^{m}[/tex] باشد که یا [tex]n< 4[/tex] یا [tex]m> 3[/tex] ولی این به صورت کامل

متمم را توصیف نمی کند. ما باید در رشته ها یک b نیز داشته باشیم که با یک a دنبال می شود .

راه حل :

[tex](\lambda a aa aaa)b^{*} a^{*}bbbbb^{*} (a b)^{*}ba(a b)^{*}[/tex]
یه جواب دیگه (حل تمرین لینز آقای ریاحی) قرار دادم :


[tex]a^{*}bbbbb^{*} b(a b)^{*} (a \lambda )(a \lambda )(a \lambda )(b(a b)^{*} \lambda )[/tex]
به جای اون سه تا (a+ λ) میتونستیم بنویسیم a*a*a* درسته؟
(05 اردیبهشت 1391 04:04 ب.ظ)one hacker alone نوشته شده توسط: [ -> ]به جای اون سه تا (a+ λ) میتونستیم بنویسیم a*a*a* درسته؟
نه دوست من این بدان معناست که ما حداکثر از سه a می توانیم استفاده کنیم .

برای فهم این سوال که البته آسون نیست . بهتره ابتدا سوال رو کامل بفهمی ببینی ازت چی می خواد سوال یه زبان داده حالا شما تمام عباراتی رو غیر اون زبان می خوای.یه کم کار داره
(05 اردیبهشت 1391 04:28 ب.ظ)yaser_ilam_com نوشته شده توسط: [ -> ]نه دوست من این بدان معناست که ما حداکثر از سه a می توانیم استفاده کنیم .

چرا حداکثر؟؟؟ وقتی روی aمن ستاره زدم یعنی میتونی هیچی نیاد و میتونه دوباره بیاد (هرچند تا که دلش خواست میتونه a بیاد)
ببین دوست من ما سه بار عبارت [tex](a \lambda )[/tex] رو آوردیم این عبارت یعنی بین [tex]\lambda[/tex] و a سه با می توانیم انتخاب کنیم که اگه هر سه بار a را انتخاب کنیم انگاه میشه aaa که [tex]a^{*}[/tex] شامل aaaa نیز میشود
امیدوارم متوجه منظورم شده باشی

[tex](a \lambda )[/tex] یعنی یا a یا [tex]\lambda[/tex] .

اگه هر سه بار a را انتخاب کنیم آنگاه میشه aaa یا هر سه بار [tex]\lambda[/tex] را انتخاب کنیم میشه [tex]\lambda[/tex] .

حالا بیایم همون [tex]a^{*}[/tex] شما رو قرار بدیم داریم :

جای [tex]a^{*}[/tex] میتونیم بنویسیم aaaaa حالا وقتی نوشته [tex](b(a b)^{*} \lambda )[/tex] یعنی بین دو عبارت سمت

چپ و راست عملگر + یکی رو باید انتخاب کرد که ما سمت چپ رو انتخاب می کنیم بعد به جای عبارت [tex](b(a b)^{*}[/tex] یک عدد b داریم بعد b به جای [tex](a b)^{*}[/tex] چون * داره پس می نویسیم [tex]\lambda[/tex] حالا عبارت شد

aaaaab که این رشته داخل زبان اولیه که شما اوردید هست حالا که ما متمم رو می خواییم .
لینک مرجع