首页 > 试题广场 >

假设把随机分布的整数作为关键字的元素散列到有N个槽的散列表中

[不定项选择题]
假设把随机分布的整数作为关键字的元素散列到有N个槽的散列表中,以下哪些散列函数是比较好的散列函数?()
  • h(k) = k / N
  • h(k) = 1
  • h(k) = k mod N
  • h(k) = (k + Random(N)) mod N,其中Random(N)返回一个0到N-1的整数
  • h(k) = (k * 37) mod N
A的结果不止N种,排除;B永远映射到1,排除;D的结果是确定的,不满足hash的条件,排除。因此选CE
发表于 2019-04-21 17:59:21 回复(6)
D是错误的,Random(N)返回0-N的整数,在查找的时候会出现问题,再次使用Random(N)不一定和上次存储产生的数字一样,这样子就会发生找不到的情况,而且题库还有道题与这个题目一样的,答案是B
发表于 2019-06-25 16:52:57 回复(0)
请问,如过碰巧的是。有37个槽,那么 k*37mod37,那永远都是0,这种情况和h(k) = 0 就可以划等号了,所以我觉得E应该是错误的,但是答案说是 C E,无奈
发表于 2020-09-07 17:37:30 回复(0)