V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
therethere9
V2EX  ›  问与答

对于 1 亿个字符串(10~30 字符长度) 求一个算法尽量均匀映射到 128 个哈希桶

  •  
  •   therethere9 · 2020-09-19 09:00:57 +08:00 · 1558 次点击
    这是一个创建于 1556 天前的主题,其中的信息可能已经有所发展或是发生改变。
    字符串是数据库的主键,考虑到数据量比较大,想根据字符串的哈希值建立对应的 128 个表,这样每个表只需要存储 1 百万条记录。
    请教有比较好的类似哈希函数吗?主要考虑因为哈希函数调用量非常频繁,挑选的哈希函数运算开销尽量要小,哈希映射的均匀分布质量的话,其实只要差不多就行了(不需要达到完全均匀分布,各个映射到的桶之间差 30%以内都可以接受) 语言目前为 python
    3 条回复    2020-09-19 12:36:38 +08:00
    optional
        1
    optional  
       2020-09-19 09:24:07 +08:00 via iPhone
    参考 JAVA hashcode 直接 mod 128
    reus
        2
    reus  
       2020-09-19 12:09:32 +08:00 via Android
    取最后一个字符,& 0x0f
    Kahnn
        3
    Kahnn  
       2020-09-19 12:36:38 +08:00
    murmurhash
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5509 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 07:00 · PVG 15:00 · LAX 23:00 · JFK 02:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.