📄 mylib.cc
字号:
#include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <string.h>#include <iostream.h>#include <time.h>#include "DC.h"#include "MyLib.h"void dummy(){ printf("I'm a dummy.\n");}int ranGen(int seed,int num){ srand((time(NULL))+(seed*121)*37); return (rand()%num);}double man_sim(DC *dc1,DC *dc2){ double s,dist,w1,w2; int nf; nf = dc1->numFeat; dist = 0.0; for(int i=0;i<nf;i++){ w1 = ((double) dc1->W[i])/((double) dc1->N); w2 = ((double) dc2->W[i])/((double) dc2->N); dist = dist + fabs(w1-w2); } s = 1.0-(dist/((double) nf)); return s;}double cos_sim(DC *dc1,DC *dc2){ double s,w1,w2,prod,norm1,norm2; int nf; nf = dc1->numFeat; prod = 0.0; norm1 = 0.0; norm2 = 0.0; for(int i=0;i<nf;i++){ w1 = ((double) dc1->W[i])/((double) dc1->N); w2 = ((double) dc2->W[i])/((double) dc2->N); prod = prod+(w1*w2); norm1 = norm1+(w1*w1); norm2 = norm2+(w2*w2); } s = prod/sqrt(norm1*norm2); return s;}double euc_sim(DC *dc1,DC *dc2){ double s,dist,w1,w2,diff; int nf; nf = dc1->numFeat; dist = 0.0; for(int i=0;i<nf;i++){ w1 = ((double) dc1->W[i])/((double) dc1->N); w2 = ((double) dc2->W[i])/((double) dc2->N); diff = w1-w2; dist = dist+(diff*diff); } s = 1.0-(sqrt(dist)/((double) nf)); return s;}double sim(int simID,DC *dc1,DC *dc2){ if(simID == 1){ return cos_sim(dc1,dc2); }else if(simID == 2){ return euc_sim(dc1,dc2); }else{ return man_sim(dc1,dc2); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -