InterviewSolution
| 1. |
Which one of the following hash functions on integers will distribute keys most uniformly over 10 buckets numbered 0 to 9 for i ranging from 0 to 2020?(A)h(i) = (12 ∗ i) mod 10(B)h(i) = (11 ∗ i2) mod 10(C)h(i) =i3 mod 10(D)h(i) =i2 mod 10 |
|
Answer» Answer: (C) Explanation: Since mod 10 is used, the last digit matters. If you do cube all numbers from 0 to 9, you get following Number Cube Last Digit in Cube 0 0 0 1 1 1 2 8 8 3 27 7 4 64 4 5 125 5 6 216 6 7 343 3 8 512 2 9 729 9 Therefore all numbers from 0 to 2020 are equally divided in 10 buckets. If we make a table for square, we don\’t get equal distribution. In the following table. 1, 4, 6 and 9 are repeated, so these buckets would have more entries and buckets 2, 3, 7 and 8 would be empty. Number Square Last Digit in Square 0 0 0 1 1 1 2 4 4 3 9 9 4 16 6 5 25 5 6 36 6 7 49 9 8 64 4 9 81 1 Alternative approach – (a) (0,1,4,9,6,5,6,9,4,1,0) repeated So, only h(i) =i3 mod 10 covers all the digits from 0 to 9. |
|