• 大小: 43KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-17
  • 语言: Java
  • 标签: 多媒体  算术编码  

资源简介

这个一个用java编写的算术编码程序,里面还有实验报告和代码,是多媒体课程设计的一个内容。

资源截图

代码片段和文件信息

package com.suanshu2;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Bianma {
int XYFHBit=0;//信源符号位数
int XYFHNum=0;//信源符号个数
String[] XYFH=new String[100];//信源符号
double[] XYFHGailv=new double[100];//信源符号概率
double GeStart[]=new double[100];//编码各区间间隔的开始值
double GeLength[]=new double[100];//编码各区间间隔的长度
double ZongStart=0;//编码总间隔的开始值
double ZongLength=1;//编码总间隔的长度
String[] InputXXXL=new String[100];//输入消息序列
int XXXLZhi[]=new int[100];//消息序列值
int XXNum=0;//消息数目
int XXLength=0;//消息长度
int DQXX=0;//当前消息
public static void main(String[] arg)
{
Bianma SuanShu=new Bianma();
try {
SuanShu.inputData();
}
catch(Exception e) {
System.out.println(“输入数据错误退出!!!“);
System.exit(0);
}
try {
SuanShu.beginCoding();
}
catch(Exception e) {
System.out.println(“输入错误的消息序列退出!!!“);
System.exit(0);
}
}
public void inputData()throws IOException
{

System.out.println(“~~~~~~~~~~~~20105333计科二班袁有根~~~~~~~~~~~“);
System.out.println(“                   数据输入                                            “);
String inputStr = null;
double Gailvhe=0;
System.out.println(“\n信源符号的位数(n=123...):“);
BufferedReader WeiShu = new BufferedReader(new InputStreamReader(System.in));
for(int i=0;(inputStr = WeiShu.readLine())!= null;i++)
{
if(i==0)
{
XYFHBit=Integer.parseInt(inputStr 10);
if(XYFHBit==0||XYFHBit<0)
{
System.out.println(“请从新输入正整数:“);
i=i-1;
continue;
}
XYFHNum=(int)Math.pow(2XYFHBit);
System.out.println(“信源符号的位数为:“+XYFHBit);
System.out.println(“接下来请输入信源符号概率:“);
for(int j=0; j {
XYFH[j]=Integer.toBinaryString(j);
while(XYFH[j].length() {
XYFH[j]=“0“+XYFH[j];
}
}
System.out.println(“请输入信源符号\““+XYFH[i]+“\“的概率:“);
System.out.println(“输入值不大于:“+1);
}
if(i>0&&i {
XYFHGailv[i-1]=Double.parseDouble(inputStr);
Gailvhe=Gailvhe+XYFHGailv[i-1];
if(XYFHGailv[i-1]>1.0||XYFHGailv[i-1]<0)
{
Gailvhe=Gailvhe-XYFHGailv[i-1];
System.out.println(“输入数据错误概率值应该在0至1之间“);
i=i-1;
}
if(Gailvhe>1||XYFHGailv[i-1]<0)
{
Gailvhe=Gailvhe-XYFHGailv[i-1];
System.out.println(“输入错误概率之和越界“);
i=i-1;
}
double TiShi=1.0-Gailvhe;
System.out.println(“请输入信源符号“+XYFH[i]+“的概率:“);
System.out.println(“输入值不大于:“+TiShi);
}
if(i==XYFHNum)
{
XYFHGailv[i-1]=Double.parseDouble(inputStr);
Gailvhe=Gailvhe+XYFHGailv[i-1];
if(Gailvhe>1.0||XYFHGailv[i-1]<0)
{
Gailvhe=Gailvhe-XYFHGailv[i-1];
System.out.println(“输入错误最终概率和应该等于1.0“);
System.out.println(“请输入信源符号“+XYFH[i-1]+“的概率:“);
i=i-1;
}
}
if(i==XYFHNum)
{
break;
}
}
Gailvhe=0;
for(int i=0;i {
GeStart[i]=Gailvhe;
GeLength[i]=XYFHGailv[i];
Gail

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      86528  2012-12-28 19:36  20105333-算法-袁有根-算术编码 java实现.doc

     文件        301  2012-12-28 15:40  20105333-算法-袁有根-算术编码 java实现\.classpath

     文件        384  2012-12-28 15:40  20105333-算法-袁有根-算术编码 java实现\.project

     文件        629  2012-12-28 15:40  20105333-算法-袁有根-算术编码 java实现\.settings\org.eclipse.jdt.core.prefs

     文件       4816  2012-12-28 19:43  20105333-算法-袁有根-算术编码 java实现\bin\com\suanshu2\Bianma.class

     文件       4236  2012-12-28 18:42  20105333-算法-袁有根-算术编码 java实现\src\com\suanshu2\Bianma.java

     目录          0  2012-12-28 19:43  20105333-算法-袁有根-算术编码 java实现\bin\com\suanshu2

     目录          0  2012-12-28 19:40  20105333-算法-袁有根-算术编码 java实现\src\com\suanshu2

     目录          0  2012-12-28 19:43  20105333-算法-袁有根-算术编码 java实现\bin\com

     目录          0  2012-12-28 19:40  20105333-算法-袁有根-算术编码 java实现\src\com

     目录          0  2012-12-28 19:40  20105333-算法-袁有根-算术编码 java实现\.settings

     目录          0  2012-12-28 19:43  20105333-算法-袁有根-算术编码 java实现\bin

     目录          0  2012-12-28 19:40  20105333-算法-袁有根-算术编码 java实现\src

     目录          0  2012-12-28 19:40  20105333-算法-袁有根-算术编码 java实现

----------- ---------  ---------- -----  ----

                96894                    14


评论

共有 条评论