שאלה אחת מהריאיון -
יש לך 25 סוסים שלכל אחד מהם מהירות קבועה שלא ידועה מראש.
מותר לך לעשות מקצה מירוצים של 5 סוסים.
עליך למצוא את 3 הסוסים הכי מהירים בהכי מעט מקצים
2 תוכניות זהות רצות על המחשב ושניהן מדפיסות את הכתובת של הפויינטר.
הכתובות המודפסות זהות, כיצד זה אפשרי?
תשובות
הוסף תשובה
|
לצפיה בתשובות
ינואר 2024
במערכות הפעלה מודרניות נעשה שימוש בזיכרון וירטואלי כדי לנהל את מרחב הכתובות של כל תהליך.
כל תהליך (כולל שתי התכניות הנ"ל) פועל במרחב כתובות וירטואלי משלו,
ומערכת ההפעלה ממפה את הכתובות הווירטואליות אל כתובות הזיכרון הפיזיות.
אותה כתובת **וירטואלית** בשני תהליכים שונים יכולה להתמפות לכתובות פיזיות שונות. לכן, אם שתי התוכניות מדפיסות את כתובתו של אותו משתנה או אובייקט, הן עשויות להראות את אותה כתובת וירטואלית, אך בפועל הן מתייחסות למיקומים פיזיים שונים בזיכרון.
בהינתן 9 כדורים, 8 במשקלים שווים ו1 כבד יותר.
בהנחה שיש לנו רק מאזניים (לא שקילה מדויקת)
כמה שקילות צריך כדי לקבוע מיהו הכדור הכבד?
תשובות
הוסף תשובה
|
לצפיה בתשובות
נובמבר 2022
שוקל 2 רביעיות,
אם הן שוות במשקל אז הכדור ה9 הוא הכבד,
אחרת, לוקח את הרבעייה הכבדה ושוקל 2 זוגות,
אקח את הזוג הכבד ואפצל אותו ואמצא את הכדור הכבד.
סה"כ - לכל היותר 3 שקילות.
נובמבר 2022
לוקחים 2 קבוצות של 3 כדורים,
שוקלים אותן ואם הן שוות אז הכבד נמצא בקבוצה ה3,
ניקח את הקבוצה הכבדה בעלת 3 כדורים, ונשקול 2 מהם,
אם אחד יותר כבד אז מצאנו את הכדור המבוקש, אם הם שווים, אז הכדור המבוקש הוא השלישי בקבוצה.
סה"כ 2 שקילות.
נובמבר 2022
2 שקילות: לוקחים 2 קבוצות של 3 ומודדים אם אחת מהן כבדה יותר ממשיכים עם השלשה הזאת. אם לא ממשיכים עם השלשה שלא נמדדה. בוחרים שניים מתוך השלשה וחוזרים על הפעולה שוב. וכך יצא שיש 2 שקילות
יוני 2024
שתי שקילות: מפצלים ל3 שלישיות, שוקלים שתיים משלוש השלישית אחת מול השניה: שוות - מתוך השלישייה השלישית שוקלים שני כדורים אחד מול השני, אם שווים השלישי הכי כבד, אם שונים אז ההכי כבר מביניהם. אם השקילה הראשונה שונה - אז לוקחים את השלישייה הכבדה עושים כנל.
הגשתי קו"ח דרך האתר שלהם. אחרי שבוע בערך חזרו אלי טלפונית לקביעת ראיון עבודה.
הראיון התנהל ב-Teams. ערך כשעתיים. שני מראיינים. ראש צוות ומתכנת בצוות.
שאלות מתוך הראיון
1. שיתפו איתי קטע קוד בשפת c. הייתי צריך לפענח מה הוא עושה. איזה שגיאות יש בו, גם מבחינה לוגית וגם מבחינת הקוד עצמו
2. יש לממש מבנה נתונים שמאפשר למשתמש לעשות set, get, setAll ב-O(1) מבחינת זמן. אין הגבלה על זיכרון. גודל המבנה שרירותי.
תשובות
הוסף תשובה
|
לצפיה בתשובות
מרץ 2025
מבנה נתונים של שני מערכים, ערך כללי, חותמת זמן. מערך אחד הוא רגיל, get set באוו של 1.
בכל set של תא כלשהו במערך מעכדנים חתימת זמן של הפעולה במערך השני. כאשר עושים setAll מעדכנים את הערך הכללי ואת חתימת הזמן של הפעולה. כאשר עושים get לתא כלשהו - בודקים אם ערכו אותו לפני שעדכנו ערך כללי (כלומר הערך הכללי ״דרס״ את תוכן התא). אם כן - נחזיר את הערך הכללי. אחרת, אם תוכן התא התעדכן לאחר עריכת ערך הכללי (״דרס״ אותו) - נחזיר את הערך בתא.