Nic*_* M. 7 python hash generator
我正在寻找一个哈希函数族生成器,它可以在给定一组参数的情况下生成一系列哈希函数.到目前为止我还没有找到任何这样的发电机.有没有办法用hashlib
包裹做到这一点?
例如,我想做的事情如下:
h1 = hash_function(1)
h2 = hash_function(2)
...
Run Code Online (Sandbox Code Playgroud)
并且h1
与h2
将不同的散列函数.
对于那些可能了解它的人,我正在尝试在非常大的数据集上实现最小哈希算法.
基本上,对于给定的文档,我有一组非常大的特征(1亿到10亿),我需要为这组特征创建1000到10000个不同的随机排列.
我不想明确地构建随机排列,所以我想在下面使用的技术:
h
并考虑两个索引r
和s
r
s
在排列之前出现if h(r) < h(s)
和100到1000个不同的散列函数.有没有我可能错过的已知图书馆?或者你可能知道使用python生成哈希函数族的任何标准方法?
我只是做了类似的事情(如果你不需要线程安全 - 如果你需要线程安全并不难改变 - 并假设一个32位的Python版本):
import random
_memomask = {}
def hash_function(n):
mask = _memomask.get(n)
if mask is None:
random.seed(n)
mask = _memomask[n] = random.getrandbits(32)
def myhash(x):
return hash(x) ^ mask
return myhash
Run Code Online (Sandbox Code Playgroud)