Open In App

GATE | GATE-CS-2015 (Set 2) | Question 65

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: (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 – 
Using the concept of power of cycle: 

(a) (0,1,4,9,6,5,6,9,4,1,0) repeated 
(b) (0,1,8,7,4,5,6,3,2,9) repeated 
(c) (0,1,4,9,6,5,6,9,4,1,0) repeated 
(d) (0,2,4,6,8) repeated 

So, only h(i) =i3 mod 10 covers all the digits from 0 to 9. 
Hence Option (C) is correct. answer 

 

Quiz of this Question
Please comment below if you find anything wrong in the above post

Article Tags :