1

我想知道如何最好地处理决定散列函数应该对其输入执行的操作的任务,当然基于可能的输入格式。

是否有任何规则(书)尚未找到?

我如何估算这种功能的成本?

我可以以某种方式预见知道用于输入的字符集发生冲突的可能性吗?

感谢您提前为我提供的食物。:)

4

2 回答 2

1

...

嗨,龚富,

看看CRC32FNV1A_Yorikke的对峙:

http://www.sanmayce.com/Fastest_Hash/index.html#KT_torture3

我如何估算这种功能的成本?

简而言之:重型和多功能键/负载。一般来说,哈希(查表)函数需要考虑三个主要方面:

  • 碰撞最胖插槽的分散和最大深度;

  • 预热时间,即启动成本/间接费用;

  • 线速度。

于 2012-10-22T16:14:07.090 回答
0

哈希码生成的一般经验法则是生成的值尽可能唯一。哈希码/哈希函数中需要的两件事

  1. 哈希码希望尽可能唯一(并且尽可能小)。话虽这么说,(在理想情况下)使用数据类型占用空间小的数据成员,并且可以保证对于该值的任何实例都是唯一的,这是一种快速获得哈希码的有效方法。然而,这有时不是安全的做法。
  2. 散列函数应该是完美的,即应该能够生成唯一值,所有值都在一个小范围内生成。
于 2012-09-28T14:59:16.733 回答