שאלה במודלים חישוביים

lim1989

New member
פיתרון...

בדיוק פתרתי שאלה כזאת היום... את יכולה מבחינת r - אחד להכניס ואחד לא.. ככה שבמחסנית יהיו לך חצי מכמות r. ואז על כל g את מוציאה מהמחסנית.. ואם נגמרו הg והמחסנית ריקה אז G הוא חצי מ-r
 

Fat Danken

New member
זה לא נכון

זה נכון רק כאשר ה-R באים לפני ה-G. כאן הסדר לא משנה, ולכן מילה כזאת למשל תתקבל בשפה, אבל לא ע"פ השיטה שלך: RGR. (מספר אותיות ה-G הוא חצי ממספר אותיות ה-R). אולם בפיתרון שלך אתה רוצה להכניס אות אחת למחסנית על כל 2 R. אך מה קורה כשהשניים לא באים ברצף כמו בדוגמה הנ"ל? איך תדע? אם ימצא פיתרון אשמח לדעת, כי גם אני לא הצלחתי את השאלה. אולי זה שפתח את השרשור לא מסר את כל פרטי השאלה.
 

lim1989

New member
יש דרך ..

באוטומט מחסנית הסדר לא משנה.. אתה יכול להכניס את זה גם באמצע הקטע.. אתה יכול לנוע בין מצבים איך שתרצה..
 

Tatu4Taty

New member
אלו כל פרטי השאלה

ואני עדיין מתקשה להבין מה הטריק. אני מנסה עכשיו שוב.
 

shirbi

New member
הרעיון הוא להחזיק מונה של ההפרש

בין הרצוי למצוי, באמצעות המחסנית. בכל פעם שרואים g, מגדילים את המונה ב 2. בכל פעם שרואים r, מקטינים את המונה ב 1. מקבלים אם המילה הסתיימה בדיוק כאשר המונה מאופס. בעיות: 1. איך מממשים מונה באמצעות המחסנית? 2. מה עושים עם המונה מגיע מתישהו להיות מספר שלילי? הפתרון: נגדיר שני סימנים בשביל שפת המחסנית: "+" ו "-". בנוסף קיים סימן תחתית המחסנית Z. כיצד עובד האוטומט: בכל פעם שרואים g ובמחסנית יש "+" או "Z", מוסיפים אליה שני "+". בכל פעם שרואים g ובמחסנית יש "-", מוציאים שני "-". אם לאחר הוצאת ה "-" הראשון הגענו לתחתית המחסנחת "Z", אז במקום להוציא, מוסיפים עוד "+". בכל פעם שרואים r ובמחסנית יש "+", מוציאים "+" אחד. בכל פעם שרואים r ובמחסנית יש "Z" או "-", מוסיפים "-" אחד. אם המילה הסתיימה ובמחסנית יש Z, אז מקבלים. אחרת דוחים. פיספסתי משהו? מכיוון שאסור להוציא שני תווים באותו הצעד, אפשר במקום זאת לבצע מסע נוסף, שבו לא קוראים שום דבר מהקלט, ורק מוציאים תו מהמחסנית.
 
למעלה