我想将大约 100 个非负 32 位整数的列表压缩成一个整数。理想情况下,生成的整数始终是唯一的,但可以接受一些相对罕见的冲突。我怎样才能做到这一点?
我正在写一个解谜者。我的搜索算法的一部分是避免重新探索已经看到的谜题状态。我将使用从列表中生成的整数作为statesAlreadySeen
表中的键。目前我使用字符串作为键。但是,从字符串键到整数键时,我已经看到了明显的性能改进,map<,>
因此我想切换。
编辑:感谢无序的地图建议!但是我仍然对实际的散列函数感到好奇。IIRC 有一个简单的功能,涉及基本的位操作和异或运算。很高兴看到这一点并对碰撞概率有一些大致的了解。