HASH
שלום
שאלה מתוך מבחן במבני נתונים אשמח לעזרה:
כל ילד צרפתי לומד בבית ספר יסודי את הבדיקה הפשוטה הבאה שאמורה לגלות
טעויות בכפל מספרים גדולים. הבדיקה מבוססת על Hashing בצורה הבאה: נתונים שני מספרים
X -ו Y שעלינו להכפיל. כדי לבדוק שהתוצאה ∗ = Z X Y שקיבלנו אכן נכונה, ניקח פונקציה h
hash ונכפיל ( ) ∗( ) h X h Y ונשווה ל ( )h Z . אם קיבלנו תשובות שונות, סימן שטעינו.
הפונקציה h היא פשוט סכום הספרות עד שנגיע לספרה אחת, כאשר 9 נחשב ל .0
Z =12193185172992 ואז Y = 98765432 , X =123456 :לדוגמה
h Z( ) = → 60 6 h X( ) = →21 3 h Y( ) = → 44 8
3×8 = 24 → 6 מתקיים ואכן
כדי להבין מדוע שיטה זו פועלת, שימו לב ש 9- אינו משפיע על חישוב הפונקציה h, למשל
." 9 לפי החוק" א"ז ,règle par 9 נקראת השיטה לכן .( h h (49 13 4 ) = = ( )
)א רשום/י נוסחה רקורסיבית עבור (h(XY .
h(x) = X mod 9 ש י/ הראה ב(
)ג הוכח /י את נכונות השיטה.
שלום
שאלה מתוך מבחן במבני נתונים אשמח לעזרה:
כל ילד צרפתי לומד בבית ספר יסודי את הבדיקה הפשוטה הבאה שאמורה לגלות
טעויות בכפל מספרים גדולים. הבדיקה מבוססת על Hashing בצורה הבאה: נתונים שני מספרים
X -ו Y שעלינו להכפיל. כדי לבדוק שהתוצאה ∗ = Z X Y שקיבלנו אכן נכונה, ניקח פונקציה h
hash ונכפיל ( ) ∗( ) h X h Y ונשווה ל ( )h Z . אם קיבלנו תשובות שונות, סימן שטעינו.
הפונקציה h היא פשוט סכום הספרות עד שנגיע לספרה אחת, כאשר 9 נחשב ל .0
Z =12193185172992 ואז Y = 98765432 , X =123456 :לדוגמה
h Z( ) = → 60 6 h X( ) = →21 3 h Y( ) = → 44 8
3×8 = 24 → 6 מתקיים ואכן
כדי להבין מדוע שיטה זו פועלת, שימו לב ש 9- אינו משפיע על חישוב הפונקציה h, למשל
." 9 לפי החוק" א"ז ,règle par 9 נקראת השיטה לכן .( h h (49 13 4 ) = = ( )
)א רשום/י נוסחה רקורסיבית עבור (h(XY .
h(x) = X mod 9 ש י/ הראה ב(
)ג הוכח /י את נכונות השיטה.