-4

I want to store some words in a hash table using open addressing and double hashing

the problem is that I have been asked to use base-128 radix system calculated using horners rule to get the key of the word but I have no idea how to implement base-128 radix system in java. could anyone help me?

4

1 回答 1

1

几点建议:

  • 霍纳规则是一种多项式评估策略;见维基百科
  • 使用 base-128 的想法是将字母(可能来自核心 ASCII 字符集)编码为数字。再次参见维基百科

所以基本上你所做的,给定一个键foobar,也就是计算相关的数值[102, 111, 111, 98, 97, 114]),然后将它们视为多项式的系数102 + 111*X + 111*X^2 + 98*X^3 + 97*X^4 + 114*X^5),并在特定点评估该多项式(你选择的,比如说7,yield 2188827) ,这会产生你的哈希值

请注意,评估多项式会很快产生较大的值;一种常见的解决方案是取结果的模数,选择一个足够大的素数模数。另请注意,由于模算术定律,您可以在霍纳算法的每一步取模。在前面的示例中,假设您选择39019作为引物编号,您将得到3763.

是校验和的一个非常简单的实现(顺便说一句,远非加密安全)

于 2013-10-16T23:56:58.300 回答