我正在编写一个程序,它产生四个无符号32位整数作为某个函数的输出.我想要散列这四个整数,所以我可以将这个函数的输出与未来的输出进行比较.
我在编写一个像样的散列函数时遇到了麻烦.当我最初编写这段代码时,我简单地添加了四个整数中的每一个,我知道这是不够的.我尝试了其他几种技术,例如转移和添加,但无济于事.我得到一个哈希,但质量很差,而且这个功能产生了大量的碰撞.
散列输出可以是32位或64位整数.所讨论的函数会产生数十亿个哈希值,因此冲突在这里是一个真正的问题,我愿意使用更大的变量来确保尽可能少的冲突.
任何人都可以帮我弄清楚如何编写一个高质量的哈希函数?