1 / 15

מדוע צריכים hash functions ?

מדוע צריכים hash functions ?. מבוא מורחב למדעי המחשב – אוניברסיטת תל אביב. אילן בן בסט. מעשה בחתונה. מעשה בזוג אוהבים שרצו למסד את אהבתם. הלך החתן המיועד לבעל אולם שמחות שבו היו מעוניינים בני הזוג. שאל בעל האולם את החתן: "כמה אורחים אישרו הגעתם לחתונה?" ענה לו החתן: " 500 אורחים".

Download Presentation

מדוע צריכים hash functions ?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. מדוע צריכים hash functions? מבוא מורחב למדעי המחשב – אוניברסיטת תל אביב אילן בן בסט

  2. מעשה בחתונה מעשה בזוג אוהבים שרצו למסד את אהבתם. הלך החתן המיועד לבעל אולם שמחות שבו היו מעוניינים בני הזוג. שאל בעל האולם את החתן: "כמה אורחים אישרו הגעתם לחתונה?" ענה לו החתן:"500אורחים".

  3. מעשה בחתונה אמר לו בעל האולם:"דע לך, ידידי, שישנו כלל ברזל: 20 אחוז מהאורחים הצפויים - לא מגיעים בסופו של דבר. חלקם שיקרו לך, חלקם יהיו חולים, חלקם לא יוכלו לצאת מוקדם מהעבודה, וכן הלאה וכן הלאה. לכן, אנחנו מצפים לכמות של 400 אורחים בלבד."

  4. מעשה בחתונה "אני מבין" ענה החתן, ומייד המשיך "אם כך, אני רוצה אולם בעל קיבולת של 400 איש בלבד. אתה יודע, שיהיה ליניארי במספר האורחים הצפוי."

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

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

  7. מעשה בחתונה "רגע" זעק החתן "אבל מה אם אני אתכנן להושיב שני אורחים שונים באותו המקום, ושניהם באמת יגיעו? נגיד.. הבוס שלי יחד עם אמא של אשתי?" "אכן לא משימה קלה" ענה בעל האולם "אתה רוצה בכל זאת לשלם על 500 מקומות?" "ממ, לא, לא ממש. אני גם ככה לא ממש אוהב את הבוס שלי".

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

  9. ומה קורה באמת מאחורי הקלעים... מעשה בזוג אוהבים שרצו למסד את אהבתם. הלך החתן המיועד לבעל אולם שמחות שבו היו מעוניינים בני הזוג. שאל בעל האולם את החתן: "כמה אורחים אישרו הגעתם לחתונה?" ענה לו החתן:"500אורחים". There is a very large universe of keys, denoted U. We mark its size by |U| = 500.

  10. ומה קורה באמת מאחורי הקלעים... אמר לו בעל האולם:"דע לך, ידידי, שישנו כלל ברזל: 20 אחוז מהאורחים הצפויים - לא מגיעים בסופו של דבר. חלקם שיקרו לך, חלקם יהיו חולים, חלקם לא יוכלו לצאת מוקדם מהעבודה, וכן הלאה וכן הלאה. לכן, אנחנו מצפים לכמות של 400 אורחים בלבד." We wish to process a much smaller set of keys, denoted K. K size is denoted by n (here n = 400).

  11. ומה קורה באמת מאחורי הקלעים... "אני מבין" ענה החתן, ומייד המשיך "אם כך, אני רוצה אולם בעל קיבולת של 400 איש בלבד. אתה יודע, שיהיה ליניארי במספר האורחים הצפוי." We wish to map the set K to a table of size m. Here m = 400 as well.

  12. ומה קורה באמת מאחורי הקלעים... "לגמרי"ענה בעל האולם והמשיך: "אתה יודע, אני מעמיד לרשותכם מארחת. תפקידה לבצע שלושה דברים: • להושיב אורחים במקומות המיועדים להם. • להגיד לכם אם אורח מסוים הגיע. • לסמן שאורח מסוים הלך. אלו הם תפקידיה של המארחת, אבל.." The dictionary problem (insert, find, delete).

  13. ומה קורה באמת מאחורי הקלעים... "אני יודע"קטע אותו החתן "אני יודע. בכדי שהכול יעבוד כמו שצריך, אני צריך להסביר למארחת כיצד להושיב את האורחים במהירות, לפני יום החתונה". "בדיוק" השיב בעל האולם "אתה הרי תהיה נרגש או שיכור. או שניהם. לכן, לפני שאתה יודע מי מהאורחים מגיע, אתה כבר צריך להחליט איפה הם יושבים". The mapping function H does not depend on K. Operations should take constant time (expected).

  14. ומה קורה באמת מאחורי הקלעים... "רגע" זעק החתן "אבל מה אם אני אתכנן להושיב שני אורחים שונים באותו המקום, ושניהם באמת יגיעו? נגיד.. הבוס שלי יחד עם אמא של אשתי?" "אכן לא משימה קלה" ענה בעל האולם "אתה רוצה בכל זאת לשלם על 500 מקומות?" " ממ, לא, לא ממש. אני גם ככה לא ממש אוהב את הבוס שלי." We wish H will not create too many collisions.

  15. ומה קורה באמת מאחורי הקלעים... "ואם בכל זאת, אבל, תהיה בעיה כזו?"תהה החתן. "אל דאגה"הרגיעו בעל האולם "אנחנו ערוכים לכל תרחיש. במקרה כזה, אנחנו יכולים או להוסיף כסא לשולחן, או להעביר את אחד האנשים לשולחן אחר פנוי." Collisions are solved either by chaining or by open addressing.

More Related