我正在复习我的数据结构期末考试,我在去年的期末考试中遇到了一个问题。在过去三个小时的工作中,我仍然无法找到解决它的方法,除非通过反复试验。这是问题:
“假设你的哈希表的大小是 31,常数 g 也是 31,并且你使用下面的哈希码
int hash = 0;
int n = s.length();
for (int i = 0; i < n; i++)
hash = g * hash + s.charAt(i);
并且您使用单独的链接来解决冲突。列出五个不同的名称,它们将散列到表中的同一位置。”
我认为必须有某种技巧,可能涉及模运算符来解决这个问题,考虑到哈希表的大小为 31,与常数 g 相同。对不起,如果我听起来像这样,但我不是要代码或任何东西,只是对这个问题的一些想法/提示。非常感谢任何评论。谢谢