📄 fghfgh.cpp
字号:
#include<iostream>
#include<cmath>
#define n 4
#define m 4
using namespace std;
int main(){
double Hx(double a[n]);
double Hy(double a[m]);
double Hy_x(double a[n][m],double b[n][m]);
double Hx_y(double a[n][m],double b[n][m]);
double Hxy(double a[n][m]);
double Ixy(double a[n][m],double b[n][m],double c[n]);
double Px[n];
cout<<"请输入"<<n<<"个概率:"<<endl;
for(int i=0;i<n;i++){
cin>>Px[i];
}
double Py_x[n][m];
cout<<"请输入"<<n<<"*"<<m<<"信道矩阵:"<<endl;
for( i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>Py_x[i][j];
}
}
double Pxy[n][m];
for( i=0;i<n;i++){
for(int j=0;j<m;j++){
Pxy[i][j]=Px[i]*Py_x[i][j];
}
}
double Py[m];
for( i=0;i<n;i++){
for(int j=0;j<m;j++){
Py[j]=0;
Py[j]=Py[j]+Pxy[i][j];
}
}
double Px_y[n][m];
for( i=0;i<n;i++){
for(int j=0;j<m;j++){
Px_y[i][j]=Pxy[i][j]/Py[j];
}
}
double HX=Hx(Px);
double HY=Hy(Py);
double HY_X=Hy_x(Pxy,Py_x);
double HX_Y=Hx_y(Pxy,Px_y);
double HXY=Hxy(Pxy);
double IXY=Ixy(Pxy,Px_y,Px);
cout<<"H(X)="<<HX<<endl;
cout<<"H(Y)="<<HY<<endl;
cout<<"H(Y/X)="<<HY_X<<endl;
cout<<"H(X/Y)="<<HX_Y<<endl;
cout<<"H(XY)="<<HXY<<endl;
cout<<"I(X;Y)="<<IXY<<endl;
return 0;
}
double Hx(double a[]){
double hx=0,s;
for(int i=0;i<n;i++){
s=-a[i]*log(a[i])/log(2);
hx=hx+s;
}
return hx;
}
double Hy(double a[]){
double hy=0,s;
for(int j=0;j<n;j++){
s=-a[j]*log(a[j])/log(2);
hy=hy+s;
}
return hy;
}
double Hx_y(double a[n][m],double b[n][m]){
double hx_y=0,s;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
s=-a[i][j]*log(b[i][j])/log(2);
hx_y=hx_y+s;
}
}
return hx_y;
}
double Hy_x(double a[n][m],double b[n][m]){
double hy_x=0,s;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
s=-a[i][j]*log(b[i][j])/log(2);
hy_x=hy_x+s;
}
}
return hy_x;
}
double Hxy(double a[n][m]){
double hxy=0,s;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
s=-a[i][j]*log(a[i][j])/log(2);
hxy=hxy+s;
}
}
return hxy;
}
double Ixy(double a[n][m],double b[n][m],double c[]){
double ixy=0,s;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
s=a[i][j]*(log(b[i][j])-log(c[i])/log(2));
ixy=ixy+s;
}
}
return ixy;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -