当我们说哈希函数时,我发现在大多数文章中它的意思是将键的序列字节转换为 32 位或 64 位无符号整数,例如参见 this
但是,当你实现hash_table时,看起来hash函数是指将一个非常大的整数转换为较小的内部数组索引,而在这个域中,上面提到的“hash函数”的含义被更改为hash值键数。
- 我的理解对吗?
- 有人可以提供一些关于将大整数转换为较小的内部数组索引的见解或链接或论文吗?
谢谢
最佳答案
我对“哈希函数”的理解是这样的:从集合A到集合{0, 1, 2, ..., n}的任意函数,其中n为非负自然数。没有其他东西本质上是“哈希函数”的含义。您的两个示例 - 以及许多其他示例 - 都包含“哈希函数”,因为它们将事物映射到非负整数的子集。将“哈希函数”应用于问题的方式也不是定义的一部分。
我什至不认为域必须大于密码域,但我可能错了。我不认为密码域可以是无限的,但我可能是错的。
关于algorithm - 哈希函数——两种不同的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8761706/