计算不同长度的两个向量之间的距离

前端之家收集整理的这篇文章主要介绍了计算不同长度的两个向量之间的距离前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有不同的方法来计算两个相同长度的矢量之间的距离:欧几里德曼哈顿,汉明…

我想知道任何可以计算不同长度的向量之间的距离的方法.

解决方法

欧几里德距离公式找出了欧几里德空间中任意两点之间的距离.

欧几里德空间中的一点也被称为欧几里德矢量.

您可以使用欧氏距离公式来计算两个不同长度的向量之间的距离.

对于不同维度的矢量,适用相同的原理.

假设较低维度的向量也存在于较高维空间中.然后,您可以将较低维度向量中的所有缺少的组件设置为0,以使两个向量具有相同的维度.然后,您将使用上述任何距离公式来计算距离.

例如,考虑R 2中的成分(a1,a2)的2维向量A和R 3中的具有成分(b1,b2,b3)的3维向量B.

要在R中表达A,您可以将其组件设置为(a1,a2,0).那么,A和B之间的欧几里得距离d可以用公式:

d² = (b1 - a1)² + (b2 - a2)² + (b3 - 0)²

d = sqrt((b1 - a1)² + (b2 - a2)² + b3²)

对于您的具体情况,组件将为0或1,因此所有差异将为-1,0或1.平方差仅为0或1.

如果您使用整数或单个位来表示组件,则可以使用简单的按位操作而不是某些算术(^表示XOR或排除或):

d = sqrt(b1 ^ a1 + b2 ^ a2 + ... + b(n-1) ^ a(n-1) + b(n) ^ a(n))

我们假设A的尾随组件为0,因此最终公式为:

d = sqrt(b1 ^ a1 + b2 ^ a2 + ... + b(n-1) + b(n))
原文链接:https://www.f2er.com/java/125157.html

猜你在找的Java相关文章