📜  门| GATE-CS-2015(Set 2)|第65章

📅  最后修改于: 2021-06-29 02:13:03             🧑  作者: Mango

以下整数中的以下哪一个哈希函数将在i的0到2020范围内的10个存储桶(编号为0到9)中最均匀地分配密钥?
(A) h(i)= i 2 mod 10
(B) h(i)= i 3 mod 10
(C) h(i)=(11 ∗ i 2 )mod 10
(D) h(i)=(12 ∗ i)mod 10答案: (B)
说明:由于使用了mod 10,因此最后一位数字很重要。

如果对所有从0到9的数字求立方,则会得到以下结果

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  

因此,从0到2020的所有数字均分为10个存储桶。如果我们为正方形制作一张桌子,我们就不会得到均等的分布。在下表中。重复1、4、6和9,因此这些存储桶将有更多条目,而存储桶2、3、7和8将为空。

Number   Square     Last Digit in Cube
  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  

替代方法–
使用循环功率的概念:

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

因此,只有h(i)= i 3 mod 10涵盖了从0到9的所有数字。
选项(B)是正确的。

这个问题的测验