math - 3D 向量的哈希值

标签 math vector hashcode

有没有办法将 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/

相关文章:

python - 计算包含两个较小圆的最小圆的圆心和半径

sql - 在 MS SQL 中计算百分位排名

python - 如何使用 networkx 计算 'nearby' 节点

math - 有 F# 的数学库吗?

vector - 如何计算3d球体的速度顶点 - 爆炸(粒子系统中)

python - 在 numpy 数组中查找有序向量

java - 为什么 java 中默认的 hashcode() 不好?

c++ - C++ 中的 lower_bound()

java - 哈希码与 SHA-1

java - java中的String hashCode是预先计算的吗?