V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  panelatta  ›  全部回复第 1 页 / 共 1 页
回复总数  4
319 天前
回复了 goodidea1 创建的主题 程序员 1.1.1.1,你还知道吗
手机掉地上误操作…莫在意
319 天前
回复了 goodidea1 创建的主题 程序员 1.1.1.1,你还知道吗
2022-04-20 22:56:35 +08:00
回复了 3dwelcome 创建的主题 算法 构建一个完美无冲突的 hashmap(上图附代码)
@3dwelcome 说明你没看懂呗,要查数据的话两次 hash 都是已知的,直接 O(1)。
还是多学学习吧,有空找 perfect hash function 的英文网页 yy ,不如买本算导从头学起。
2022-04-20 22:37:38 +08:00
回复了 3dwelcome 创建的主题 算法 构建一个完美无冲突的 hashmap(上图附代码)
别乱想了,我直接按你的思路帮你整个比你这个好得多的:
搞两层哈希表,第一层随便用什么 hash 函数都行,我们给他安排 k 个桶,对任意第 0 <= i < k 我们都给它安排一个独立的第二层哈希表;对于第 i 个桶里的所有 key ,我们从一个确定范围的函数空间 V 里随机选择一个 hash 函数,保证它能对这个桶里的所有 key 是完美 hash (比如对 key 是整数的情况,随机取 a, b 和素数 p 就能构造一个 hash 函数 f(x) = (ax + b) % p ),然后这个桶直接记录上这个 hash 函数就行了;这样你的 dataset seedset 都不用了,还不用在这又臭又长地选种子,不比你这个好多了?
而且你的加盐就“完美”的说法还只是瞎想,我这个直接给你选一个完美函数,一次随机不行再来一次,不比你这个直接?
口嗨谁不会啊?
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4098 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 00:58 · PVG 08:58 · LAX 17:58 · JFK 20:58
Developed with CodeLauncher
♥ Do have faith in what you're doing.