algorithm - 哈希函数——两种不同的含义?

标签 algorithm hash integer-hashing

当我们说哈希函数时,我发现在大多数文章中它的意思是将键的序列字节转换为 32 位或 64 位无符号整数,例如参见 this

但是,当你实现hash_table时,看起来hash函数是指将一个非常大的整数转换为较小的内部数组索引,而在这个域中,上面提到的“hash函数”的含义被更改为hash值键数

  1. 我的理解对吗?
  2. 有人可以提供一些关于将大整数转换为较小的内部数组索引的见解或链接或论文吗?

谢谢

最佳答案

我对“哈希函数”的理解是这样的:从集合A到集合{0, 1, 2, ..., n}的任意函数,其中n为非负自然数。没有其他东西本质上是“哈希函数”的含义。您的两个示例 - 以及许多其他示例 - 都包含“哈希函数”,因为它们将事物映射到非负整数的子集。将“哈希函数”应用于问题的方式也不是定义的一部分。

我什至不认为域必须大于密码域,但我可能错了。我不认为密码域可以是无限的,但我可能是错的。

关于algorithm - 哈希函数——两种不同的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8761706/

相关文章:

hash - 是否可以为整个整数范围实现通用哈希?

java - 对于整数元组来说,什么是好的哈希函数?

javascript - 不使用网格的贪吃蛇游戏算法,段的移动速度可能比它们的尺寸慢

c++ - 埃拉托色尼筛 : bit wise optimized

hash - 关于散列及其在数据压缩中的使用的说明

ruby-on-rails - 无方法错误 : undefined method `symbolize_keys!' for Hash

javascript - 如何替换彼此前面 15 个字符的字母?

javascript - Javascript 中的匹配算法

Perl 哈希初始化语法