📜  标准距离 - C++ (1)

📅  最后修改于: 2023-12-03 14:55:38.008000             🧑  作者: Mango

标准距离 - C++

标准距离(euclidean distance)是指在n维空间中,两点间距离的计算方法,称为欧几里得距离,也叫做欧氏距离。

在二维平面上,点 $A(x_1,y_1)$ 与点 $B(x_2,y_2)$ 之间的距离计算方法为:

$d = \sqrt{(x_1-x_2)^2+(y_1-y_2)^2}$

在三维空间中,点 $A(x_1,y_1,z_1)$ 与点 $B(x_2,y_2,z_2)$ 之间的距离计算方法为:

$d = \sqrt{(x_1-x_2)^2+(y_1-y_2)^2+(z_1-z_2)^2}$

在n维空间中,点 $A(a_{1},a_{2},...,a_{n})$ 与点 $B(b_{1},b_{2},...,b_{n})$ 之间的距离计算方法为:

$d = \sqrt{(a_{1}-b_{1})^2+(a_{2}-b_{2})^2+...+(a_{n}-b_{n})^2}$

在C++中,我们可以使用sqrt函数来求平方根,pow函数求幂次方。

代码示例:

#include<iostream>
#include<cmath>
using namespace std;

int main()
{
    int n;
    cout<<"请输入维度:";
    cin>>n;
    double a[n],b[n],sum=0;
    cout<<"请输入第一个向量:";
    for(int i=0;i<n;i++)
        cin>>a[i];
    cout<<"请输入第二个向量:";
    for(int i=0;i<n;i++)
        cin>>b[i];
    for(int i=0;i<n;i++)
        sum+=pow(a[i]-b[i],2);
    cout<<"标准距离为:"<<sqrt(sum)<<endl;
    return 0;
}

代码说明:

  • 首先我们定义了一个变量n,用于输入向量的维度。
  • 然后定义两个数组a和b,用于输入两个向量。
  • 接着,在for循环中,用pow函数求出每个坐标的差的平方,并将其加入到sum中。
  • 最后,sqrt函数求sum的平方根,即为标准距离。

输入示例:

请输入维度:3
请输入第一个向量:1 2 3
请输入第二个向量:4 5 6
标准距离为:5.19615

输出示例:

请输入维度:5
请输入第一个向量:1 2 3 4 5
请输入第二个向量:3 4 5 6 7
标准距离为:5.47723