Marvell – סטודנט מהנדס אלקטרוניקה 1

מאת JobHunt

1) מערכות ספרתיות:

נתונה מערכת בעלת שתי כניסות, בכניסה 1 ישנו X בעל 4 סיביות ובכניסה 2 ישנו X+2 גם כן בעל 4 סיביות.

המוצא של המערכת הוא X+1 בעל 4 סיביות.

צריך לממש את המערכת הנ"ל מבלי להשתמש במחברים או מחסרים.

פתרון: אם X הוא זוגי אז במוצא ניתן את X כאשר הסיבית הLSB שלו עם NOT.

אם X הוא אי זוגי אז במוצא ניתן את X+2 כאשר הסיבית ה-LSB שלו עם NOT.

מימוש עם MUX כאשר LSB של X היא הכתובת הבוחרת.

2) נתון מערך בגודל N של מספרים אי שליליים.

צריך למצוא 5 מספרים הכי גדולים אבל כך שהם לא יהו שכנים במערך. (כלומר אף זוג מחמשת המספרים האלה לא יכול להיות צמוד במערך המקורי)

הראה דרך פתרון.

פתרון: לוקחים מערך של אינדקסים מ-0 עד N-1 וממינים את המערך המקורי בסדר יורד.

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

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

3) (סיבוך של 2)

כעת בגלל אילוצי המערכת לא ניתן לרוץ על המערך המקורי יותר מפעם אחת.

השאלה נשארת זהה. רמז: ניתן להשתמש במערך עזר אך אסור להעתיק את כל המערך המקורי למערך עזר (ואז בעצם לפתור כמו מקודם)

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

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

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

גדולים שהם לא שכנים

4) המשך:

מערך עזר יכול להיות יותר קטן מ-15! מהו גודלו המינימלי כך שעדיין יעמוד בדרישות?

פתרון: 13