資源簡介
C++代碼:
離散二維隨機變換熵的計算
(1)利用random函數和歸一化方法構造一個二維離散隨機變量(X,Y);
(2)分別計算X與Y的熵、聯合熵、條件熵:H(X)、
H(Y)、H(X,Y)H(X|Y)、I(X|Y);

代碼片段和文件信息
#include
#include
#include
#include
#include
using?namespace?std;
void?main()
{
????int?knt=0;
double?a[4][4]b=0c=0;
srand((unsigned)time(NULL));??
????for(k=0;k<4;k++)
{
for(n=0;n<4;n++)
{
a[k][n]=rand()%100;
t+=a[k][n];
}
}
cout<<“從0到100間隨機取得4行4列的random函數:“< for(k=0;k<4;k++)
{
for(n=0;n<4;n++)
{
cout< }
?cout< }
cout<<“函數歸一化:“< for(k=0;k<4;k++)
{
for(n=0;n<4;n++)
{
cout< }
?cout< }
cout<<“H(Y)計算:“< int?e=1;
for(k=0;k<4;k++)
{
double?i=0g=0;
for(n=0;n<4;n++)
{
i+=(a[k][n]/t);
g+=(a[n][k]/t);
}
cout<<“P(Y“< ++e;
b-=(i*log(i)/log(2.0));
c-=(g*log(g)/log(2.0));
}
cout<<“H(Y)=-∑p(Y)log?p(Y)=“< cout<<“H(X)=-∑p(X)log?p(X)=“< cout<<“聯合熵H(XY)計算:“< b=0;
int?ruh=0;
for(k=0;k<4;k++)
{
for(n=0;n<4;n++)
{
if(a[k][n]!=0)
{
b-=((a[k][n]/t)*log(a[k][n]/t)/log(2.0));
}
else?
{
r=ku=n;
h=1;
break;
}
}
}
if(h==0)
cout<<“H(XY)=-∑∑p(XY)log?p(XY)=“< else?cout<<“P(“< cout<<“條件熵H(X|Y)計算:“< b=0h=0;
for(k=0;k<4;k++)
{
double?i=0;
for(n=0;n<4;n++)
{
i+=(a[k][n]/t);
}
for(n=0;n<4;n++)
{
if(a[k][n]!=0)
{
b-=((a[k][n]/t)*log((a[k][n]/t)/i)/log(2.0));
}
else?{h=1;break;}
}
}
if?(h==0){cout<<“H(X|Y)=-∑∑P(XY)log(P(XY)/P(Y))=“< else?cout<<“P(“< cout<<“I(X|Y)計算:“< if(h==0)cout<<“I(X|Y)=H(X)-H(X|Y)=“< else?cout<<“P(“< }
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1921??2009-11-13?14:47??3\3\3.cpp
?????文件???????3903??2009-10-30?00:05??3\3\3.vcproj
?????文件???????1427??2009-11-24?14:05??3\3\3.vcproj.072CDC729F894D0.dx.user
?????文件????????663??2009-11-10?09:55??3\3\Debug\3.exe.em
?????文件????????728??2009-11-10?09:55??3\3\Debug\3.exe.em
?????文件????????621??2009-11-13?14:47??3\3\Debug\3.exe.intermediate.manifest
?????文件??????49054??2009-11-13?14:47??3\3\Debug\3.obj
?????文件???????6526??2009-11-13?14:47??3\3\Debug\BuildLog.htm
?????文件?????????67??2009-11-13?14:47??3\3\Debug\mt.dep
?????文件?????183296??2009-11-13?14:47??3\3\Debug\vc90.idb
?????文件?????217088??2009-11-13?14:47??3\3\Debug\vc90.pdb
?????文件????2214912??2009-11-24?14:05??3\3.ncb
?????文件????????869??2009-10-29?22:28??3\3.sln
????..A..H.?????11264??2009-11-24?14:05??3\3.suo
?????文件??????39424??2009-11-13?14:47??3\Debug\3.exe
?????文件?????586248??2009-11-13?14:47??3\Debug\3.ilk
?????文件?????609280??2009-11-13?14:47??3\Debug\3.pdb
?????目錄??????????0??2009-11-13?14:47??3\3\Debug
?????目錄??????????0??2009-11-13?14:47??3\3
?????目錄??????????0??2009-11-11?23:44??3\Debug
?????目錄??????????0??2009-11-11?22:50??3
-----------?---------??----------?-----??----
??????????????3927291????????????????????21
評論
共有 條評論