python的完美散列实用程序
perfection的Python项目详细描述
为已知整数集创建完美哈希函数的模块 输入。
>>> import perfection >>> l = (0, 3, 4, 7 ,10, 13, 15, 18, 19, 21, 22, 24, 26, 29, 30, 34) >>> hf = perfection.make_hash(l) >>> hf(19) 1
安装
pip install perfection
主要功能
- make_hash(),它生成一个从诚实到善良的完美散列函数 对于给定的密钥。
- make_dict()创建实现 MutableMapping接口(因此,其行为完全类似于dict),并且 使用在对make_hash()的等效调用中创建的哈希函数。
另外,hash_parameters()可以用于输出 为给定的输入密钥集生成一个完美的哈希。这些参数可以 然后用您的 选择。
例如,使用hash_parameters():
生成t和r参数>>> l = (0, 3, 4, 7 ,10, 13, 15, 18, 19, 21, 22, 24, 26, 29, 30, 34) >>> params = hash_parameters(l) >>> params.t 6 >>> params.r (2, 7, 12, 0, 7, 10)
然后,伪代码中的散列函数如下:
function hash(i): static r = { 2, 7, 12, 0, 7, 10 } static t = 6 x = i mod t y = i div t return x + r[y]
注意,div代表floor(整数)除法。
测试版功能
可以导入最小完美(已订购!)具有相同api的哈希函数 使用:
import perfection.czech
API尚未完成!