標題:
統(tǒng)計信源熵C程序
[打印本頁]
作者:
胡頹葉子
時間:
2017-6-1 17:37
標題:
統(tǒng)計信源熵C程序
統(tǒng)計信源熵程序:
#include<math.h>
#include<stdio.h>
void main()
{
int ch[50]={0};
int sum=0,n=0;
int i;
double p[50]={0};
double H=0;
char c;
printf("please input an essay:\n");
while((c=getchar())!='\n')
{
for(i=65;i<=90;i++)
{
if(i==c)
{
ch[i-65]++;
sum++;
}
}
for(i=97;i<=112;i++)
{
if(c==i)
{
ch[i-65]++;
sum++;
}
}
}
for(i=0;i<50;i++)
{
p[ i]=(double)ch[ i]/(double)sum;
if(p[ i]!=0)
{
printf("p(%c)=%1.2f",i+65,p[ i]);
n++;
}
if(n==3)
{
printf("\n");
n=0;
}
}
for(i=0;i<=25;i++)
{
if(p[ i]!=0)
H=H+p[ i]*(log(p[ i]));
}
printf("\n");
printf("信息熵=%f",-H);
printf("\n");
}
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1