A couple invites other 9 couples to a party, one can shake hands with any but not his/her spouse , after a while the house owner asks everyone else how many handshakes he/she had (including his wife) , and every one told him a different number, who is his wife ?
תשובות
הוסף תשובה
|
לצפיה בתשובות
מאי 2018
אם יש 9 זוגות ובסה"כ 20 (כולל הזוג המארח), אז בקרב עשר הזוגות אף אחד לא לחץ ידיים ליותר מ-18 איש.
לכן, אם 19 איש לחצו מספר שונה של ידיים אז המספרים יכולים להיות 0,1,2...18.
הבן אדם שלחץ ידיים ל-18 איש חייב להיות נשוי לזאת שלא לחצה ידיים בכלל (אחרת הוא היה אמור ללחוץ לה יד), כנ"ל לגבי זה שלחץ ידיים ל-17 איש (צריך להיות נשוי לזאת שלחצה רק יד אחת) וכו.
בסה"כ נקבל:
18-0
17-1
16-2
15-3
14-4
13-5
12-6
11-7
10-8
9-9 - זאת שלחצה תשע ידיים זו אישתו!
יש 25 סוסים.
ניתן להריץ 5 סוסים אחד בכל מקצה.
אין לנו שעון מכשיר מדידה אחר.
בכמה מקצים נוכל לקבוע מי הם 3 הסוסים המהירים?
תשובות
הוסף תשובה
|
לצפיה בתשובות
מאי 2018
נדרשים שבעה מקצים -
5 מקצים בין כל חמישה סוסים
מקומות 4 ו-5 בכל מקצה מתבטלים ולכן נישאר עם 15 סוסים
מקצה נוסף בין כל המקומות הראשונים בכל מקצה (משם נמצא את המקום הראשון)
נשמיט את מקומות 4 ו-5 במקצה השישי וכן את כל מי שהגיע אחריהם במקצה הקודם, נשמיט את כל מי שהגיע אחרי מקום שלישי במקצה המוקדם יותר וכן את הסוס שהגיע שלישי לאחר המקום השני במקצה המוקדם יותר.
ניוותר עם חמישה סוסים, נעשה מקצה שביעי ונמצא את המקומות השני והשלישי
יולי 2018
למה לא פשוט 5 מקצים, עבור 5 סוסים כל פעם,
נבחר את ה5 הכי טובים מכל מקצה ואז נעשה גם להם מקצה נוסף ומשם נבחר את ה3 הכי טובים? סהכ 6
יולי 2018
לא ניתן לעשות את זה ב-6 מקצים, מכיוון שיכול להיות ששלושת הסוסים הכי מהירים הוקצו למקצה אחד ורק ההכי מהיר ינצח במקצה זה, ואז נבחר סוס אחר שניצח במקצה מסוים להיות לדוגמה במיקום השני, למרות שהוא פחות מהיר מסוס אחר שפשוט לא ניצח (כי ההכי מהיר ניצח אותו והוא הגיע למקום השני).
אוקטובר 2018
5 מקצים עבור 5 סוסים. לוקחים רק את מקום ראשון ושני, נותרו 10 סוסים.
2 מקצים נוספים, כל מקום ראשון נכנס ל3 המהירים ביותר. מקצה אחרון בין ארבעת הנותרים המנצח לוקח את המקום ה-3 ברשימה. סה"כ 8 מקצים
לרשותך מערכת עיבוד שנקראת על ידי הפונקציה:
void process(data);
הנח שהפונקציה הנ"ל ממומשת, עובדת ומבצעת את המוטל עליה.
בעקבות שינוי בחומרת המערכת נוצרה מגבלה על קצב הקריאות שמערכת מסוגלת לטפל בהן.
מוגדר לך
#define MAX_CALLS 100
שמגדיר את הקצב המקסימלי של קריאות שמערכת מסויימת יכולה לתמוך בו בכל שניה.
הסבר מה עליך לשנות בקוד כדי שפונקציה לא תיקרא יותר מהקצב המוגדר.
מותר לך להוסיף פונקציות/מחלקות/משתנים וכל מה שתרצה.
תשובות
הוסף תשובה
|
לצפיה בתשובות
מאי 2018
נעשה מעין semaphore תוכניתי. נגדיר משתנה בגודל 100, ובכל פעם שמישהו יעבור בשורת קוד זו נבדוק האם הערך של המספר הוא אפס, אם לא נחסיר ממנו אחד ונמשיך לבצע את יתר הקוד. בסיום הקוד, נדאג להעלות את הערך של המשתנה חזרה באחד כדי לאפשר לתהליכים נוספים להיכנס. אם הערך של המשתנה הוא אפס, נכניס את התהליך שרוצה להתבצע ל-busy waiting עד שהערך של המשתנה יעלה באחד ואז נוכל לבצע אותו