用c++写 输入两个向量A=[X1,X2,X3,X4,X5];B=[Y1,Y2,Y3,Y4,Y5],求两向量之间的欧式距离和余弦相似度的代码
时间: 2023-04-08 15:03:02 浏览: 185
以下是用 C 语言写的计算两个向量之间欧式距离和余弦相似度的代码:
```c
#include <stdio.h>
#include <math.h>
#define N 5
int main()
{
double A[N], B[N];
double dot_product = 0, norm_A = 0, norm_B = 0;
int i;
printf("请输入向量 A:\n");
for (i = 0; i < N; i++) {
scanf("%lf", &A[i]);
}
printf("请输入向量 B:\n");
for (i = 0; i < N; i++) {
scanf("%lf", &B[i]);
}
// 计算欧式距离
double distance = 0;
for (i = 0; i < N; i++) {
distance += pow(A[i] - B[i], 2);
}
distance = sqrt(distance);
printf("两个向量之间的欧式距离为:%.2lf\n", distance);
// 计算余弦相似度
for (i = 0; i < N; i++) {
dot_product += A[i] * B[i];
norm_A += pow(A[i], 2);
norm_B += pow(B[i], 2);
}
double cosine_similarity = dot_product / (sqrt(norm_A) * sqrt(norm_B));
printf("两个向量之间的余弦相似度为:%.2lf\n", cosine_similarity);
return 0;
}
```
以上代码中,我们首先定义了两个长度为 5 的向量 A 和 B,然后通过循环输入向量的每个元素。接着,我们分别计算了两个向量之间的欧式距离和余弦相似度。在计算余弦相似度时,我们先计算了两个向量的点积、向量 A 的模长和向量 B 的模长,然后通过公式计算余弦相似度。最后,我们输出了计算结果。
阅读全文