散列函数从整数坐标对提供唯一的uint
一般问题:
我有一个很大的2d点空间,人口稀少。 认为它是一个大的白色画布上撒上黑点。 我必须遍历并搜索这些点很多。 帆布(点空间)可以是巨大的,接近极限 int和它的大小在设置点之前是未知的。 这带来了哈希的想法: 理想: 重要事项:事先无法知道画布的大小 canvaswidth * y x 很遗憾的是这个问题。 我也尝试了一个非常幼稚的 abs(x)abs(y) 但是会产生太多的冲突。 妥协: 有什么想法吗感谢任何帮助。 最好的祝福, 编辑: 我希望这是可以的,因为所有答案对于更新的假设仍然是最有意义的 对不起,
保证无碰撞的哈希函数不是散列函数:)
您可以考虑使用二进制空间分区树(BSP)或XY树(密切相关)来代替使??用散列函数。 如果要将两个uint32的哈希值混合成一个uint32,不要使用像Y& 0xFFFF因为丢弃一半的位。做某事 (x * 0x1f1f1f1f) ^ y (您需要首先转换一个变量,以确保哈希函数不可交换) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Windows C:如何重定向stderr以调用fprintf?
- 有没有找到Windows DLL的MD5或其他校验和的地方?
- 将Microsoft动态2013或2015与PHP集成
- 使用InstallShield注册COM对象
- active-directory – Windows Server 2012迁移(DNS / AD DS
- 无法在WinXP 32位上为JavaFX应用程序构建本机包
- Windows 8 WrapPanel
- windows-server-2003 – 列出应用于Windows服务器的所有修补
- .net – Windows窗体应用程序的颜色选择器
- 如何在Windows上使用提升的权限运行.msi安装程序