C语言计算log和信息熵
 #include <math.h>
#include <stdio.h>
double logn(int n, double x);
double log2(double x);
double self_info(int n, double p);
double self_info2(double p);
void main(){
double p1,p2,k,h;
p1 = 0.01;
p2 = 1 - p1;
h = self_info2(p1)+self_info2(p2);
printf("result is :%f",h);
     
}
//求以n为底x的对数
double logn(int n, double x){
return log(x)/log(n);
}
//求以2为底x的对数
double log2(double x){
return log(x)/log(2);
}
//求底为n,概率为p的自信息
double self_info(int n, double p){
return -p*logn(n,p);
}
//求底为2,概率为p的自信息
double self_info2(double p){
return -p*log2(p);
         
}
    #include <stdio.h>
double logn(int n, double x);
double log2(double x);
double self_info(int n, double p);
double self_info2(double p);
void main(){
double p1,p2,k,h;
p1 = 0.01;
p2 = 1 - p1;
h = self_info2(p1)+self_info2(p2);
printf("result is :%f",h);
}
//求以n为底x的对数
double logn(int n, double x){
return log(x)/log(n);
}
//求以2为底x的对数
double log2(double x){
return log(x)/log(2);
}
//求底为n,概率为p的自信息
double self_info(int n, double p){
return -p*logn(n,p);
}
//求底为2,概率为p的自信息
double self_info2(double p){
return -p*log2(p);
}
本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号