חוברת שש - Leveraging Simple Dictionaries

קראתי את השאלות בפורום, ואני עדיין לא בטוחה שהבנתי :\

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

אז כן, אני ממש חושבת שאני לא מבינה משהו.

לייק 1

מדובר פה על דוגמה של אוטומט סופי דטרמיניסטי.
תעקוב אחרי הדוגמא הנוספת ותראה שזה כן משנה שאר ה"מספרים" המופיעים ב-inputs.

דמייני תמשחק ים יבשה.
תמיד מתחילים ביבשה
ואז אומרים ים ואת עוברת לים
ואז אומרים שוב ים ואז נשארת בים
ואז אומרים יבשה ואת עוברת ליבשה
וכו… וכו …

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

כלומר:
תמיד יהיה לנו מצב התחלתי כלשהו נתון (יכול להיות אחד כזה - במשחק שלנו למשל יבשה)
יהיו לנו המצבים (יכולים להיות אינסוף כאלה - במשחק שלנו אז 2 ים ויבשה)
ויהיו לנו “הנחיות” למעבר בין מצב למצב (במשחק שלנו - אם מישהו אומר ים, עוברים לים, אלא אם כן את כבר בים אז את נשארת במקום)

הקובץ מכיל בעצם את ההנחיות - inputs את צריכה לבנות את המערכת הזו ואז להריץ בהם את ההנחיות ולראות באיזה מצב את מסיימת את המשחק ולהחזיר אמת \ שקר אם המצב הזה הוא מצב מקבל או לא.

מקווה שעזרתי

15 לייקים

מהמם, כן, הבנתי! :slight_smile:
תודה רבה!

לייק 1

דוגמה מעולה. לא אתפלא אם בקורסים הבאים ים ינסח את השאלה בהתאם לים יבשה.

3 לייקים

גם אני לא :slightly_smiling_face:

5 לייקים

אחת הדוגמאות אם לא ה- , סחטיין!

לייק 1

האם יש טעות בדוגמא?
Leveraging Simple Dictionaries
עבור ה INPUT
2, 2, 2, 2
היא אמורה להיתקע על q1
שזה מצב מקבל
המכומה צריכה להחזיר TRUE
ובדוגמא היא מחזירה FALSE

לייק 1

היי, אשמח לדעת מה השימוש של תוכנה כזו בעולם האמיתי.
תודה

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

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

אף פעם.

לעולם לא.

שווה בנפשך, להגיע לכזו תובנה. זה מאוד humbling ושם אותך בפרופורציות לגבי טיב היקום ומקומך בו.

בעיה אחת מפורסמת כזו היא בעיית העצירה.

3 לייקים

תודה על התגובה.
אכן “סיבוכיות” :slight_smile:

לייק 1

יש דוגמאות אפילו יותר פשוטות ויותר נגישות.
נניח שאתה עובר על טקסט גדול ורוצה לחפש את כל המיילים שמופיעים בטקסט. איך תעשה את זה? אתה תרצה לייצר רצף חוקים שאם תת־הטקסט הזה עומד בו (מתחיל בסדרת תווים מ־a עד z או קו תחתון, ואז @, ואז … ומסתיים ב־.com) הוא יחשב מייל.
אוטומטים זה הפתרון המושלם :slight_smile:
ואכן משתמשים במשהו שנקרא Regular Expressions במקרה הזה, משהו שאנחנו הולכים ללמוד :partying_face:

אה, כן, וכדי לממש סימולציות של ים יבשה.

2 לייקים

לא עדיף לשלם להודי? :crazy_face:

כרבע הודי אני יכול לנחש באופן גס שאנחנו לא טובים בים יבשה

3 לייקים