用c++写一个求两个向量A=[X1,X2,X3,X4,X5];B=[Y1,Y2,Y3,Y4,Y5]之间的欧式距离和余弦相似度的代码
时间: 2023-04-08 13:02:59 浏览: 103
以下是求两个向量A和B之间的欧式距离和余弦相似度的C代码:
#include <stdio.h>
#include <math.h>
#define N 5
int main()
{
double A[N] = {1.0, 2.0, 3.0, 4.0, 5.0};
double B[N] = {6.0, 7.0, 8.0, 9.0, 10.0};
// 求欧式距离
double dist = 0.0;
for (int i = 0; i < N; i++) {
dist += pow(A[i] - B[i], 2);
}
dist = sqrt(dist);
printf("欧式距离为:%lf\n", dist);
// 求余弦相似度
double dot_product = 0.0;
double norm_A = 0.0;
double norm_B = 0.0;
for (int i = 0; i < N; i++) {
dot_product += A[i] * B[i];
norm_A += pow(A[i], 2);
norm_B += pow(B[i], 2);
}
double cos_sim = dot_product / (sqrt(norm_A) * sqrt(norm_B));
printf("余弦相似度为:%lf\n", cos_sim);
return 0;
}
注意:以上代码仅供参考,实际使用时需要根据具体情况进行修改。
阅读全文