我听说过,例如,MurmurHash2不是“增量”,但MurmurHash3是增量式的。这是什么意思?为什么它有用?适合场合散列函数增量是什么意思?
10
A
回答
6
增量散列函数,其中如果以前 散列消息,男稍更新到一个新的消息,M *,那么它 应该是相当快速的计算更新 消息的哈希值, M *。这是通过计算来自旧的 散列值m的新散列m *来完成的,与传统的散列函数相比,散列函数必须 重新计算需要较长时间的新散列m *。
http://www.cs.berkeley.edu/~daw/papers/inchash-cs06.pdf
他们是有用的,由于这样的事实,他们更容易计算,因此不太昂贵的计算能力和时间方面。
但是,它们并不适合所有情况。伯克利的这篇论文提供了一些很好的例子,介绍它们在介绍部分的用处。
3
我不是这方面的专家,但我认为MurmurHash3在tommarshall描述的意义上并不是增量的。
当人们形容为增量它们可能意味着你可以计算在O(1)内存流的哈希值,即你可以有一个让你做以下(在伪代码)的API:
x = Hasher()
x.add("hello ")
x.add("world!")
x.get_hash()
并且会产生一个字符串“hello world”的散列,而不会在任何时间点将整个字符串保存在内存中。
特别是,imurmurhash-js JavaScript包似乎在该含义中使用了“增量”一词。
相同的含义似乎用于MetroHash文档。
+1
也许它应该被称为“流哈希”。 – CMCDragonkai
相关问题
- 1. “散货”是什么意思?
- 2. '散列缺点'是什么意思?
- 3. Bash'type someCmd':什么意思是'散列'?
- 4. 什么意思是“x位散列函数”
- 5. “散列函数的分布”是什么意思?
- 6. 函数($)是什么意思?
- 7. 张量散列函数是什么?
- 8. 是什么意思:是什么意思?
- 9. 什么是散列函数?
- 10. :: at函数名是什么意思?
- 11. javascript:函数语法是什么意思?
- 12. get_the_terms()wordpress函数是什么意思?
- 13. 这个宏函数是什么意思?
- 14. 这个C++函数是什么意思?
- 15. 函数(el,ev)是什么意思?
- 16. 新增功能(getClass())是什么意思?
- 17. 变量++和变量是什么意思?
- 18. &C++函数参数列表中的&是什么意思?
- 19. 宏中的双重散列(##)是什么意思?
- 20. .js文件后散列(#)是什么意思?
- 21. 散列time_t的字节是什么意思?
- 22. 散列中的聚集(在碰撞中)是什么意思?
- 23. Ruby on Rails这个散列输出是什么意思?
- 24. 你是什么意思的JavaScript变量/函数的首字母
- 25. 函数调用中的自变量是什么意思?
- 26. %{}是什么意思?
- 27. '#'是什么意思?
- 28. “?”是什么意思?
- 29. #{...}是什么意思?
- 30. || =是什么意思?
谢谢!病毒的例子很棒(来自纸面)。 –
我很困惑这个答案。这个问题特别提到了MurmurHash3是什么意思,但我不认为它在答案中描述的意义上是递增的。也许我只是没有看到如何。 – Rotsor