}
}
voidhuffman(double*a,string*c,intn)
{
elemmp;stacks(n);
double*b;b=newdouble[n];for(inti=0;idouble*d;d=newdouble[n];for(inti=0;idouble*e;e=newdouble[n];for(inti=0;istringt;
for(intm=n;m>=2;m--)
{
b[m-2]+=b[m-1];
mp.a2=d[m-2];mp.a3=d[m-1];
s.push(mp);
doublemp,mp1;
for(inti=0;i{
for(intj=n-2;j>=i;j--)
{
if(b[j]
{
mp=b[j+1];mp1=d[j+1];
b[j+1]=b[j];d[j+1]=d[j];
b[j]=mp;d[j]=mp1;
}
}
}
cout<";
for(inti=0;i{
cout.precision(3);
cout<}
}
while(!
s.isEmpty())
{
mp=s.pop();
for(inti=0;i{
if(mp.a2==e[i])
{
t=c[i];
}
}
for(inti=0;i{
if(mp.a2==e[i])
{
c[i]=t;
c[i]+="0";
}
elseif(mp.a3==e[i])
{
c[i]=t;
c[i]+="1";
}
}
}
}
voidmain()
{
intn;
cout<<"输入N:
";
cin>>n;
c=newstring[n];
aa(n);
huffman(a,c,n);
cout<cout<"<for(inti=0;i{
cout.precision(3);
cout<cout.precision(0);
cout<cout<}
}
实验三典型信道容量计算
[实验目的]
掌握用递推算法计算典型信道的容量的方法。
[实验学时]
2学时
[实验准备]
1.熟悉二进信道的概率转移矩阵表示,掌握信道容量的递推算法,设计用递推算法计算二进信道容量的数据结构和算法;
2.编写用递推算法计算二进信道容量的书面程序代码。
[实验内容及步骤]
用递推算法计算二进信道的容量
说明:
(1)构造各种二进信道的概率转移矩阵;
(2)用递推算法计算各种二进信道的容量;
(3)不断调整误差精度对系统进行测试,并进行对比分析;
(4)编写本次实验的实验报告。
附实验三内容及源程序
实验三用递推算法计算二进信道的容量
1实验内容
(1)