编程里的距离公式怎么写

时间:2025-03-04 10:01:10 明星趣事

在编程中,计算两点之间距离的公式主要依赖于所使用的编程语言和所需的精度。以下是几种常见的距离公式及其在编程中的实现方式:

欧氏距离 (Euclidean Distance)

二维平面:`d = sqrt((x2 - x1)^2 + (y2 - y1)^2)`

三维空间:`d = sqrt((x2 - x1)^2 + (y2 - y1)^2 + (z2 - z1)^2)`

曼哈顿距离 (Manhattan Distance)

二维平面:`d = |x2 - x1| + |y2 - y1|`

三维空间:`d = |x2 - x1| + |y2 - y1| + |z2 - z1|`

切比雪夫距离 (Chebyshev Distance)

二维平面:`d = max(|x2 - x1|, |y2 - y1|)`

三维空间:`d = max(|x2 - x1|, |y2 - y1|, |z2 - z1|)`

闵可夫斯基距离 (Minkowski Distance)

一般形式:`d = (|x2 - x1|^p + |y2 - y1|^p + ... + |zn - zn-1|^p)^(1/p)`

其中 `p` 是一个正实数,当 `p=1` 时为曼哈顿距离,当 `p=2` 时为欧氏距离。

示例代码(C语言)

```c

include

include

// 函数声明

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

int main() {

double x1, y1, x2, y2;

// 输入点1和点2的坐标

printf("输入第一个点的坐标 (x1, y1): ");

scanf("%lf %lf", &x1, &y1);

printf("输入第二个点的坐标 (x2, y2): ");

scanf("%lf %lf", &x2, &y2);

// 计算两点之间的距离

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

// 输出结果

printf("两点之间的距离是: %.2lf\n", result);

return 0;

}

// 函数定义

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

double dx = x2 - x1;

double dy = y2 - y1;

double dist = sqrt(dx * dx + dy * dy);

return dist;

}

```

这个示例代码首先定义了一个计算两点之间欧氏距离的函数 `distance`,然后在 `main` 函数中读取用户输入的两个点的坐标,并调用 `distance` 函数计算它们之间的距离,最后输出结果。