21xrx.com
2024-11-05 16:27:01 Tuesday
登录
文章检索 我的文章 写文章
C++中求两点距离的方法
2023-06-28 19:20:34 深夜i     --     --
C++ 两点 距离 方法

在C++编程中,经常会遇到要求两点之间距离的情况。不同的应用场景,可能需要使用不同的方法求解距离。下面介绍几种常见的求解两点距离的方法。

方法一:欧几里得距离

欧几里得距离是最常见的求解两点距离的方法。它的计算公式为:

d = √((x2-x1)² + (y2-y1)²)

其中,d表示两点之间的距离,(x1,y1)和(x2,y2)分别表示两点的横坐标和纵坐标。

C++代码实现:

#include

#include

using namespace std;

double distance(double x1, double y1, double x2, double y2) {

 return sqrt(pow((x2-x1), 2) + pow((y2-y1), 2));

}

int main() {

 double x1, y1, x2, y2;

 cin >> x1 >> y1 >> x2 >> y2;

 double d = distance(x1, y1, x2, y2);

 cout << "两点距离为:" << d << endl;

 return 0;

}

方法二:曼哈顿距离

曼哈顿距离又称为街区距离,是在城市街区中两点间行走的最短距离。它的计算公式为:

d = |x2-x1| + |y2-y1|

其中,d表示两点之间的距离,(x1,y1)和(x2,y2)分别表示两点的横坐标和纵坐标。

C++代码实现:

#include

#include

using namespace std;

double distance(double x1, double y1, double x2, double y2) {

 return abs(x2-x1) + abs(y2-y1);

}

int main() {

 double x1, y1, x2, y2;

 cin >> x1 >> y1 >> x2 >> y2;

 double d = distance(x1, y1, x2, y2);

 cout << "两点距离为:" << d << endl;

 return 0;

}

方法三:切比雪夫距离

切比雪夫距离也是一种常见的方法,它是以国际象棋中的国王走法为基础,计算两点之间的距离。它的计算公式为:

d = max(|x2-x1|, |y2-y1|)

其中,d表示两点之间的距离,(x1,y1)和(x2,y2)分别表示两点的横坐标和纵坐标。

C++代码实现:

#include

#include

using namespace std;

double distance(double x1, double y1, double x2, double y2) {

 return max(abs(x2-x1), abs(y2-y1));

}

int main() {

 double x1, y1, x2, y2;

 cin >> x1 >> y1 >> x2 >> y2;

 double d = distance(x1, y1, x2, y2);

 cout << "两点距离为:" << d << endl;

 return 0;

}

通过上述三种方法的介绍和代码实现,我们可以根据具体的应用场景,选择合适的方法来求解两点之间的距离。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复