欧氏距离(Euclidean Distance)是一种在多维空间中测量两个点之间“直线”距离的方法。这种距离的计算基于欧几里得几何中两点之间的距离公式,通过计算两点在各个维度上的差的平方和,然后取平方根得到。
欧氏距离是指n维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。
在n维空间中,两个点

与

之间的欧氏距离,

欧氏距离在数据分析、机器学习、模式识别等领域中广泛应用。它不仅可以用于比较两个点的相似度(距离越近,相似度越高),还可以用于聚类分析、异常检测等任务。
假设我们有两个二维向量a(1, 2)和b(4, 6),我们需要计算它们之间的欧氏距离。
因此,向量a(1, 2)和b(4, 6)之间的欧氏距离为5。
欧氏距离(Euclidean Distance)的Java实现非常简单,可以通过计算两个点(通常是两个相同长度的数值数组或列表)之间的直线距离来完成。以下是一个简单的Java方法,用于计算两个double数组之间的欧氏距离:
public class EuclideanDistance {
/**
* 计算两个double数组之间的欧氏距离
*
* @param array1 第一个数组
* @param array2 第二个数组
* @return 欧氏距离
* @throws IllegalArgumentException 如果数组长度不等
*/
public static double calculateEuclideanDistance(double[] array1, double[] array2) {
if (array1.length != array2.length) {
throw new IllegalArgumentException("两个数组的长度必须相等");
}
double distance = 0.0;
for (int i = 0; i < array1.length; i++) {
distance += Math.pow(array1[i] - array2[i], 2); // 计算各维度差值的平方
}
return Math.sqrt(distance); // 计算平方根得到欧氏距离
}
public static void main(String[] args) {
double[] point1 = {1.0, 2.0, 3.0};
double[] point2 = {4.0, 5.0, 6.0};
double distance = calculateEuclideanDistance(point1, point2);
System.out.println("欧氏距离: " + distance);
}
}在上面的示例中,calculateEuclideanDistance 方法接收两个 double 类型的数组作为参数,并检查它们的长度是否相等。如果长度相等,则通过循环计算每个对应元素之间的差的平方,并将这些平方值累加起来。最后,通过调用 Math.sqrt 方法计算累加和的平方根,得到两个点之间的欧氏距离。
在 main 方法中,我们创建了两个示例点 point1 和 point2,并调用了 calculateEuclideanDistance 方法来计算并打印这两个点之间的欧氏距离。