חידה נחמדה ששמעתי

HaifaMan

New member
חידה נחמדה ששמעתי

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

vinney

Well-known member
זה לא חידה

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

HaifaMan

New member
קטנוני...../images/Emo6.gif

אוקיי אז תחליפו בהודעה המקורית כל מופע של המילה "חידה" ב"בעיה מעשית מאוד". יש רעיונות לפתרון?
 
פתרון

נייצג את כל החביות באמצעות מספר בינארי מ-0 עד 1024, כל מספר חבית יהיה בעל 10 סיביות. ניקח 10 עובדים ונמספר אותם בבינארי כך:1,2,4,8,16... תהליך השתייה מהחביות יהיה כך: כל עבד ישתה מכל החביות שבהם הסיבית שלו דולקת בהתאמה, כלומר עבד מספר 1 ישתה מכל חבית אי זוגית, וכך הלאה... יום למחרת נבדוק אלו עבדים מתו ולפי המספר הבינארי שלהם נוכל לשחזר את החבית, כלומר עם עבדים שהמספר שלהם בבינראי הוא 1 ו-8 אזי נדע שחבית מספר 9 היתה רעילה
 

HaifaMan

New member
../images/Emo47.gifיפה.. זה היה גם הפתרון שלי...

לא נראה לי שאפשר בפחות.
 

iiddoo

New member
רואים שאתה עובד באינטל :)

שואלים שם כנראה לא מעט את השאלה הזו בראיונות עבודה {שאלו שלושה חברים שלי}.
 

HaifaMan

New member
דווקא שמעתי את זה מאנשים

שלא קשורים לאינטל... חבר'ה מהפקולטה. אותי בראיון שאלו דברים אחרים (אבל עדיין את כל השאלות הכרתי, הם לא ממש מחדשים שם
)
 
למעלה