2つのベクトル\(A,B\)の距離は
\begin{align}
d=\sqrt{(a_1 – b_1)^2+(a_2 – b_2)^2 + \cdots +(a_{n-1} – b_{n-1})^2+(a_n – b_n)^2}
\end{align}
で与えられる。
以下Cを言語の例。
#include<stdio.h>
#include<math.h>
double norm(double*, double*, int, int);
int main(int argc, char* argv[]) {
double p1[] = { 0,0};
double p2[] = { 0,10};
double d;
int arrayNumber1 = sizeof p1 / sizeof p1[0];
int arrayNumber2 = sizeof p2 / sizeof p2[0];
d = norm(p1, p2, arrayNumber1, arrayNumber2);
printf("norm -> %f", d);
return 0;
}
double norm(double* p1, double* p2, int arrayNumber1, int arrayNumber2) {
if (arrayNumber1 == arrayNumber2) {
int i;
double num = 0;
for (i = 0; i < arrayNumber1; i++) {
num = num + pow((p1[i] - p2[i]), 2.0);
}
printf("%f", num);
return sqrt(num);
}
else {
return -1;
}
}
コメント