我有一组128位数和集合的大小< 2^32 ...所以理论上我可以有一个映射函数,将所有的128位数映射到32位数....我怎么构造映射函数映射函数
Q
映射函数
3
A
回答
3
好像你正在寻找一个最小perfect hash它将n个键映射到n个连续的整数。
上述句子中的wiki页面链接提到了两个实现它的库。
0
如果不知道输入数据的性质,它不可能给最优的哈希算法。但是如果输入是均匀分布的,那么你可以使用输入的低32位。这意味着碰撞的可能性,所以你必须处理。
0
通用结构是将所有128位值保存在一个大数组中,按升序排列。然后,每个值被“映射”到数组中的索引。要“计算”地图,您需要在数组中进行二分搜索,以获取数组中值的精确索引。使用2 值,数组的大小为64 GB,二进制搜索需要在数组中进行35次左右的查找。
在所有的普遍性,你不能做的比这更好。然而,如果你的128位数值具有相当均匀的分布(取决于它们来自何处),那么大型数组结构可以被大量压缩,特别是如果你能保证所有地图输入总是成分128位值的集合;我敢打赌,你可以将其削减到几千兆字节 - 但查找会更加昂贵。
对于更实用的解决方案,你将与结构中的128位值的工作:他们来自哪里,他们代表着什么......
0
设置你的电话号码为师的位置它的价值在2^32。
相关问题
- 1. Vimscript - 映射函数
- 2. JavaScript参数映射()函数
- 3. C++函数映射实现
- 4. 动态函数映射
- 5. Haskell和Erlang映射函数
- 6. 阵营 - 将数据映射到被映射函数
- 7. 映射函数给出无法解析的函数或方法(映射)
- 8. NuSOAP - 函数参数映射不正确
- 9. 多维数组映射函数
- 10. 函数映射到数据帧
- 11. 大熊猫映射函数返回“男”
- 12. 斯威夫特的映射函数
- 13. C++中的映射函数是什么?
- 14. 映射函数似乎不能执行?
- 15. spring boot CrudRepository findby函数无法映射
- 16. 如何映射类和函数在concurrent.futures.ProcessPoolExecute
- 17. 分解函数映射,减少-JS
- 18. 从映射函数返回多个值
- 19. MongoDB的MapReduce的映射函数
- 20. 什么是映射缩减函数
- 21. 映射类和成员函数
- 22. 将函数映射传递给宏
- 23. Jquery映射函数失去状态
- 24. STL映射值构造函数
- 25. Tomcat中的Spring处理函数映射
- 26. Swift mangled函数名称映射
- 27. 将函数映射到字符串
- 28. 返回值映射回调函数
- 29. MFC消息映射和虚函数
- 30. 二维numpy阵列的映射函数
你能预测128位数字(或他们的模式)吗? – 2011-04-25 18:04:26
你想达到什么目标?解释它而不使用单词映射。而且,你用什么语言? – Dialecticus 2011-04-25 18:10:48
@Dia:我猜他想要一个基于[hash]标签的散列函数。但是+1对您的评论:-) – 2011-04-25 18:17:19