c语言求余弦相似度代码
时间: 2023-12-26 21:08:19 浏览: 140
以下是求余弦相似度的C语言代码:
#include <stdio.h>
#include <math.h>
int main() {
int n;
printf("请输入向量维度n:");
scanf("%d", &n);
double x[n], y[n], dot_product = 0, norm_x = 0, norm_y = 0;
printf("请输入向量x:");
for (int i = 0; i < n; i++) {
scanf("%lf", &x[i]);
norm_x += x[i] * x[i];
}
printf("请输入向量y:");
for (int i = 0; i < n; i++) {
scanf("%lf", &y[i]);
norm_y += y[i] * y[i];
dot_product += x[i] * y[i];
}
double cos_sim = dot_product / (sqrt(norm_x) * sqrt(norm_y));
printf("向量x和向量y的余弦相似度为:%lf\n", cos_sim);
return 0;
}
代码解释:
1. 通过scanf输入向量维度n。
2. 定义两个长度为n的数组x和y来存储输入的向量。
3. 通过for循环输入向量x和向量y,并计算它们的范数和点积。
4. 通过余弦相似度公式计算余弦相似度。
5. 通过printf输出余弦相似度。
阅读全文