@season8 "2. 数据集必须是固定上限的,因为不能插入(无法判断冲突数据是否是原数据),可以查询和删除。" 插入和查询操作极为相似,虽然没存原始数据,资源 ID 号还是保留着,可以依次找回原始数据。
新插入情况,基本上平均计算 5 次 hash ,就能把新元素顺利插入 bitmap 里。
"3. 数据必须是去重的,有重复数据,必定重复 hash" 这要看具体情况。原数据长度是不受不限制的,只有 hash function 后的 hash value 才有长度限制这一说法。可以针对原数据属性,自己构造一个变长结果的 hash function 。这样只要原始数据不重复,hash value 就能保证不重复。
对于完全一致的原始数据,肯定没有保存两份的必要。
3dwelcome
2022-04-19 09:47:29 +08:00
@qgymib 你忽略了一个重要前提,元素数量上限是固定的。只要数量固定,hash function 足够散列,碰撞概率就能固定,就有完美 hash 。