我很清楚比较浮点数所涉及的所有问题。这正是这个问题的原因。
我正在寻找为 3D 向量(3 个浮点数 - x、y、z)的值创建一个快速哈希表。可以假设向量的长度总是1.0(sqrt(x*x+y*y+z*z)
是1.0)
本质上,这意味着我正在寻找一个散列函数,它的值几乎等于相同的 unsigned int 值,并且如果散列值相等,则对应的相等运算符为真(不一定只有它们相等)
编辑-
误报(即不同但映射到同一个桶的向量)是给定的,因为这是一个哈希表。
假阴性(即接近但映射到不同存储桶的向量)是不可取的,但似乎没有办法避免它们。就我而言,它们不会导致完全损坏,只是一些数据重复,这是我必须忍受的。