Leveraging Simple Dictionaries - מצב התחלתי ומקבל

זו היתה טעות שלי, בסוף שיניתי את הקוד והוא פועל מצוין.
בכל מקרה, רציתי לומר שזה בפער התרגיל הכי כיף שעשיתי עד עכשיו. תודה רבה לך ולכל הצוות !! :smile:

לייק 1

שתי שאלות:

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

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

תודה

  1. זה לא תמיד ככה, צריך לעשות את המקרה הכללי.
  2. אכן אין קובץ מצורף, אתה יכול ליצור אחד לפי הדוגמאות שנמצאות במחברת.
לייק 1
  1. אתה צריך לבנות תוכנית שמתאימה לכל מערכת מצבים אפשרית שנותנים לך בקובץ לפי הפורמט שהוצג. לכן, למשל, בדוגמה השניה לא תוכל לבדוק רק את הקלט האחרון, וברור שצריך לכל הקלטים.
  2. לצורך התרגיל יצרתי קובץ עם הדוגמאות שהם נתנו, זה מאוד עזור להבנה.
לייק 1

לא מצאתי בפורום:
אשמח להשוות את התשובה של הדוגמא (השנייה) של התרגיל כביקורת כדי שאדע שהקוד שלי עובד על כל תרחיש.

קח דוגמה לאוטומט שאולי יותר יאתגר לך את הקוד:

Definitions:
States: q0, q1, q2
Start: q0
Accepting: q0

Transitions:
q0: 0, 3, 6, 9 -> q0
q0: 2, 5, 8 -> q1
q0: 1, 4, 7 -> q2
q1: 1, 4, 7 -> q0
q1: 0, 3, 6, 9 -> q1
q1: 2, 5, 8 -> q2
q2: 2, 5, 8 -> q0
q2: 1, 4, 7 -> q1
q2: 0, 3, 6, 9 -> q2

Inputs:
1
1, 2
1, 2, 3
1, 3, 5
1, 3, 8
1, 2, 4, 1
9, 9, 9, 9, 9, 9
9, 9, 9, 9, 9, 1

התשובות:

False
True
True
True
True
False
True
False
6 לייקים

יש טעות בתשובות או שלא הבנתי את הנושא עד הסוף? (בדר"כ מדובר באופציה השנייה)

נראה לי שאמור לצאת:
False (מסיימים ב-q2 שהוא לא מצב מקבל)
False (מסיימים ב-q1)
False (מסיימים ב-q1)
False (מסיימים ב-q1)
False (מסיימים ב-q1)
False (מסיימים ב-q2)
True (מסיימים ב-q0 שהוא המצב המקבל היחיד)
False (מסיימים ב-q2)

אין טעות בתשובות, תעקוב באופן “ידני”, ואם זה קשה אז תשרטט על דף וזה יפשט את העניין!

הכוונה היא לדוגמה שמופיעה בהודעה של ים מעליי. קח את האינפוט השני לדוגמה:
מתחילים ב-q0, מקבלים 1 ועוברים ל-q2, ואז מקבלים 2 ועוברים ל-q1 שהוא לא מצב מקבל.

הכל מסתדר אם מוסיפים גם את q1 כמצב מקבל.

אתה צודק, נראה לי (אם זו הדוגמא מהאתגר) שיש טעות בשתי השורות הראשונות של q2…

ים, האם זה באמת בלבול בין השורות?

@Yam
לדעתי יש טעות בקובץ. צריך להיות:

q2: 1, 4, 7 -> q1
q2: 2, 5, 8 -> q0

2 לייקים

בדקתי ואת צודקת… - 20 -

אפשר עזרה בכיוון חשיבה לאופן שבו הקובץ צריך להיות מפורק?

יאפ, טעות שלי :slightly_smiling_face: תודה

2 לייקים

אפשר להעלות את הקובץ המתוקן, כדי שנוכל לבדוק אותו מול מה שכתבנו?

תיקנתי בפוסט המקורי…

2 לייקים

תודה! קיבלתי בדיוק את התוצאות שלך!!!
פצצה אפשר לחזור לישון בשקט :grin:

לייק 1

גם הקוד שלי החזיר את את התוצאו תהנ"ל עבור
האוטומט החדש :slight_smile:

לייק 1

חחח.
עובד אחרי התיקון! ואפילו מצאתי באג בעקבות זה.

צודק, עדיף לא לשלם להודי :slight_smile: :stuck_out_tongue_winking_eye:

לייק 1