有没有办法将 3D 矢量表示为确定的数字?我的意思是具有不同值的两个向量不可能具有相同的哈希值。我确信已经有人对此有疑问,但不幸的是我还没有找到它。感谢您的帮助。
编辑:
我知道这个二维向量算法非常好(我认为):(x + y) * (x + y + 1)/2 + y
最佳答案
获取 float 向量的哈希值的最佳方法是将其转换为字节或字符字符串并计算其哈希值。以下答案中使用 numpy 和 python 给出了一个示例: Most efficient property to hash for numpy array 。
这对于大量向量来说可以有效地工作,但是由于将三个 float 映射到一个整数的简单事实,您不能保证不会发生冲突。然而,Python hashlib 库中有许多哈希算法可供选择,您可能需要进行试验。 C++ 中的一个选项是 Boost::Hash。
关于math - 3D 向量的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31951502/