资源简介
信息论实验课上编写的常用编码,有香农编码,霍夫曼编码,费诺编码,写成了windows程序,有界面。
代码片段和文件信息
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.Data;
namespace 实验二
{
class Fano
{/**Fano算法
*
* 1.信源符号按概率递减的方式排列
* 2.将排列好的符号分成两组,使每组的概率之和接近相等并对赋于0和1
* 3.将每一大组再分组,同2
* 4.依次下去,直到只剩一个信源符号
* 5.信源符号所对应的码字即为费诺码
*/
// Data data;//符号集
//double prob;//概率
int codelength;//码长
/*费诺码的实现*/
public ArrayList isFano(double[] px)
{
ArrayList list = new ArrayList();
double[] arr = new double[px.Length];
for (int i = 0; i < px.Length; i++)
{
//data = (Data)list.get(i);//得到每一个符号
//prob = data.getProb();//取出符号概率
arr[i] = px[i];//将概率存放在一个数组中
}
String[] codeword = getGroup(arr 0 arr.Length - 1);//符号编码
for (int i = 0; i < codeword.Length; i++)
{
// data = (Data)list.get(i);//得到每一个符号
//data.setCodeword(codeword[i]);//加上码字
//data.setCodeLength(codeword[i].Length());//加上码长
//list.set(i data);//加上符号
list.Add(codeword[i]);
}
return list;//返回改变的列表
}
/*用分组法求出符号的编码*/
public static String[] getGroup(double[] a int i int j)
{
String[] p = new String[a.Length]; //返回的字符编码
for (int t = 0; t < a.Length; t++)
{
p[t] = ““;//初始化
}
int flag = 0;//分组间隔点
if (i < j)
{
//采用递归法将数组分为两半
double sum = 10;//比较中间量
for (int k = i; k <= j; k++)
{
//取累和间距最小量
if (Math.Abs(sumGroup(a i k) - sumGroup(a k + 1 j)) < sum)
{
//以flag为中间点分别累加左边和右边然后比较
sum = Math.Abs(sumGroup(a i k) - sumGroup(a k + 1 j));
flag = k;//取出中间点
}
}
String[] p1 = getGroup(a i flag);//递归第一组(左边)
String[] p2 = getGroup(a flag + 1 j);//递归第二组(右边)
for (int m = i; m <= flag; m++)
{
p[m] = “0“ + p1[m];//第一组赋值0
}
for (int m = flag + 1; m <= j; m++)
{
p[m] = “1“ + p2[m];//第二组赋值1
}
}
return p;//得到分组后的码字
}
/*求数组第i位到第j位的和*/
public static double sumGroup(double[] a int i int j)
{
double total = 0;
for (int k = i; k <= j; k++)
{
total = total + a[k];
}
return total;
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 16896 2018-12-23 15:31 实验二\实验二\bin\Debug\实验二.exe
文件 38400 2018-12-23 15:31 实验二\实验二\bin\Debug\实验二.pdb
文件 11600 2018-12-23 23:02 实验二\实验二\bin\Debug\实验二.vshost.exe
文件 490 2018-04-12 07:35 实验二\实验二\bin\Debug\实验二.vshost.exe.manifest
文件 3478 2018-12-17 15:13 实验二\实验二\Fano.cs
文件 5420 2018-12-09 15:52 实验二\实验二\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6356 2018-12-23 15:31 实验二\实验二\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 774 2018-12-23 23:02 实验二\实验二\obj\x86\Debug\实验二.csproj.FileListAbsolute.txt
文件 979 2018-12-17 09:24 实验二\实验二\obj\x86\Debug\实验二.csproj.GenerateResource.Cache
文件 9214 2018-12-16 19:30 实验二\实验二\obj\x86\Debug\实验二.csprojResolveAssemblyReference.cache
文件 16896 2018-12-23 15:31 实验二\实验二\obj\x86\Debug\实验二.exe
文件 38400 2018-12-23 15:31 实验二\实验二\obj\x86\Debug\实验二.pdb
文件 180 2018-12-17 15:13 实验二\实验二\obj\x86\Debug\实验二.Properties.Resources.resources
文件 180 2018-12-17 15:13 实验二\实验二\obj\x86\Debug\实验二.实验二.resources
文件 494 2018-12-05 15:22 实验二\实验二\Program.cs
文件 1350 2018-12-05 15:21 实验二\实验二\Properties\AssemblyInfo.cs
文件 2870 2018-12-05 15:21 实验二\实验二\Properties\Resources.Designer.cs
文件 5612 2018-12-05 15:21 实验二\实验二\Properties\Resources.resx
文件 1096 2018-12-05 15:21 实验二\实验二\Properties\Settings.Designer.cs
文件 249 2018-12-05 15:21 实验二\实验二\Properties\Settings.settings
文件 10317 2018-12-21 18:07 实验二\实验二\实验二.cs
文件 3732 2018-12-17 15:13 实验二\实验二\实验二.csproj
文件 15898 2018-12-17 09:24 实验二\实验二\实验二.Designer.cs
文件 5817 2018-12-17 09:24 实验二\实验二\实验二.resx
文件 869 2018-12-05 15:21 实验二\实验二.sln
..A..H. 19456 2018-12-23 23:06 实验二\实验二.suo
目录 0 2018-12-05 15:21 实验二\实验二\obj\x86\Debug\TempPE
目录 0 2018-12-23 15:31 实验二\实验二\obj\x86\Debug
目录 0 2018-12-09 15:52 实验二\实验二\bin\Debug
目录 0 2018-12-05 15:22 实验二\实验二\bin\Release
............此处省略9个文件信息
相关资源
- NAudio.dll
- 基于ArcEngine的栅格计算器开发
- NET反混淆—de4dot-Reactor5.0
- 本地检索系统
- 简单的数字虚拟键盘
- myKTV项目
- B*寻路算法 C Sharp实现
- 水晶报表8.0基本使用手册中文
- 长图片切割,A4纸,可微调
- 记事本.zip
- Unity图片切换轮播功能
- winfrom 显示指定svg
- C#客房管理系统实战项目
- 消消乐自动求解
- ZedGraphSample中文破解+
- 计算机图形学旋转和投影
- 串口通讯简单
- 基于UDP协议的unity客户端,内涵服务端
- TcpConnectDemo.zip
- 学生成绩管理系统按GPA的值对学生进
- 基于TCP的协议的聊天程序
- OpenPop.dll,.NET读取邮件类库
- 铁路轨道平面平顺性指标计算程序代
- Beginning WF_Windows Workflow in .NET 4.0一书的
- Tcp全双工通信测试代码
- .NET版本opc da 源码
- 大数据漫谈系列之:大数据怎么发挥
- .net考勤管理系统完整源码
- labview调用halcon进行相机实时采集
- 机票预订系统
评论
共有 条评论