精华内容
下载资源
问答
  • 唯一可译码

    2013-01-07 16:14:56
    唯一可译码的判断的c++实现,对唯一可译码判断并输出
  • matlab 判断唯一可译码

    2015-04-09 23:15:22
    本网站资源中的判断唯一可译码的matlab代码有一定错误,最近学习唯一可译码。上传该m文件,未进一步优化。但是可用的。matlab是R2011a版
  • 唯一可译码判别

    2011-12-26 15:55:49
    唯一可译码的判别,信息论编码技术,编码,解决编码是不是唯一可译的问题
  • 唯一可译码源码

    2011-11-21 16:56:11
    我编写的一个唯一可译码测试程序。非常好用,欢迎大家下载。
  • 唯一可译码判定代码

    2014-04-15 13:24:23
    这个唯一可译码写的不够简便,但经过测试能够满足对一串码字的唯一可译的判定这样的需求。代码很好理解。适合初学者
  • 唯一可译码的辨别 C语言实现,因为用的动态分配,所以编码的长度基本可以无限长
  • 信息论与编码课程中的哈夫曼编码与唯一可译码的课程设计过程代码及总结
  • 唯一可译码判决准则

    2017-06-20 13:34:32
    熟悉唯一可译码判决准则,掌握字符串处理程序的设计和调试技术。
    • 实验目的

      熟悉唯一可译码判决准则,掌握字符串处理程序的设计和调试技术。

    • 实验要求

      已知:信源符号个数r、码字集合C。
      输入:任意的一个码。码字个数和每个具体的码字在运行时从键盘输入。
      输出:判决(是唯一可译码/不是唯一可译码)。

    • 实验原理
      1、考查 C 中所有的码字,若Wi Wj 的前缀,则将相应的后缀作为一个尾随后缀码放入集合 F0 中;
      2、考察 C Fi两个集合,若 WiC WiFi 的前缀或 WiFi WjC 的前缀,则将相应的后缀作为尾随后缀码放入集合 Fi+1 中;
      3、 F=iFi 即为码 C 的尾随后缀集合;
      4、若F中出现了 C 中的元素,算法终止,返回假(C不是唯一可译码);否则若 F <script type="math/tex" id="MathJax-Element-17">F</script>中没有出现新的元素,则返回真。

    • 实验程序

    package com.yrwan.UDC;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Scanner;
    public class Main {
        public static void main(String[] args){
            ArrayList<String> ccString=new ArrayList<String>();//存储输入的码符号
            //输入字符
            if (args.length==0){
                ccString.clear();
                Scanner input = new Scanner(System.in);
                System.out.print("输入信源的个数:");
                int count = input.nextInt();
                System.out.print("输入编码符号:");
                for(int i = 0; i< count; i++)
                {
                    ccString.add(input.next());
                }
                input.close();
                System.out.println("输入的码字是:"+ccString);
            }else {
                Collections.addAll(ccString, args);
            }
            String result= UDC.compare(ccString)?"是唯一可译码":"不是唯一可译码";
            System.out.println(ccString+" "+result);
            System.exit(0);
        }
    }
    
    package com.yrwan.UDC;
    import java.util.ArrayList;
    public class UDC {
        private static boolean result=true;//默认是可唯一译码
        /*
         * 比较两个字符串str1、str2。若相等,即不可能是唯一可译码,使result为假
         * 若满足前缀关系,则返回后缀
         * 若无以上关系,返回真
         */
        private static String compareString(String str1,String str2)
        {
            String theResult=null;
            if(str1.equals(str2)){
                result=false;
            }
            if(result)
            {
                if(str1.startsWith(str2))
                {
                    theResult=str1.substring(str2.length(),str1.length());
                }
                if(str2.startsWith(str1))
                {
                    theResult=str2.substring(str1.length(),str2.length());
                }
            }
            return theResult;
        }
        /*
         * 比较两个集合a、b。若有相同的元素,则不是唯一可译码,使result为假
         * 若其中有元素满足前缀关系,则提取后缀添加到mylist中
         */
        private static void compareList(ArrayList<String> a,ArrayList<String> b,String endString)
        {
            boolean flag=false;
            String aa;
            String bb;
            cp: for(int i=0;i<a.size();i++)
            {
                for(int j=0;j<b.size();j++)
                {
                    aa=a.get(i);
                    bb=b.get(j);
                    endString=compareString(aa,bb);
                    if(!result)
                    {
                        break cp;
                    }
                    if(endString!=null&&!b.contains(endString))
                    {
                        b.add(endString);
                        flag=true;
                        break cp;
                    }
                }
            }
            if(flag)
            {
                compareList(a,b,endString);
            }
        }
        /*
         * 对一个String集是否为唯一可译码给出判决
         */
        public static boolean compare(ArrayList<String> ccString){
            String endString=null;//用来引用要加入myList中的后缀
            ArrayList<String> myList=new ArrayList<>();
            //比较所给字符集中任何两个字符,将满足前后缀的字符添加到myList中
            cp: for(int m = 0; m< ccString.size(); m++)
            {
                for(int j = m+1; j< ccString.size(); j++)
                {
                    String st1=ccString.get(m);
                    String st2=ccString.get(j);
                    endString= compareString(st1,st2);
                    if(!result)
                    {
                        break cp;
                    }
                    if(endString!=null&&!myList.contains(endString))
                    {
                        myList.add(endString);
                    }
                }
            }
            compareList(ccString,myList,endString);
            return result;
        }
    }
    
    展开全文
  • 使用C++实现信息论的唯一可译码编码方案,里面是工程文件的打包,解压后使用VS2015即可运行!
  • 唯一可译码实现的源代码,供大家参考啊,基于二叉树
  • c++实现唯一可译码

    2010-01-08 10:26:03
    c++实现唯一可译码,信息论与编码,信息安全实习
  • C语言实现唯一可译码

    2013-06-12 13:10:09
    C语言实现唯一可译码,思路清晰,代码简单易懂。 #include #include #define maxlen 1024 char info[maxlen][maxlen]; char s[maxlen][maxlen]; int num=0; //s字符串计数 bool info_check(int count) { int i...
  • 信息论基础 唯一可译码编码 内容 流程 代码 结果
  • 唯一可译码判定 编程实现唯一可译码判定 c
  • 唯一可译码判别方法

    2011-11-18 14:45:33
    唯一可译码 判别的 matlab源程序 信息论作业
  • 唯一可译码判定源码

    2013-12-17 14:18:17
    一个图像化界面下完成对信息编码中唯一可译码的判定
  • 吉林大学通信工程学院信息论作业-唯一可译码判断,自己写的测试程序,供大家下载。
  • 唯一可译码判别准则

    2012-03-19 19:11:20
    信息理论基础 作业 唯一可译码判别准则 源代码
  • 已知:信源符号个数q,码字集合C; 输入:任意码字个数C与每个具体的码字在程序具体运行时从键盘输入; 输出:判别结果(是否唯一可译码
  • 针对现存判别唯一可译码的 方法(即:根据异前级码来进行判断的方法以及A.A.Sardinas 和C.W.patterson判断法)所存 在的不确定性、大运算童等问题,提出一种方法对非唯一可译码作出准确判断。该方法具有判 别简单,运算...
  • 用C++实现唯一可译码的判别,运行程序后,手动输入待判别的序列,即可判断出是否是唯一可译码
  • C++语言编写的唯一可译码程序,内附流程图
  • 唯一可译码python实现

    2018-04-26 12:39:55
    惟一可译码的判断使用python实现,使用的是信息论与编码的判断算法,Fi,Fi+1前后缀判断算法实现
  • C++实现唯一可译码的判断.....VC++运行!
  • 已知:心愿符号个数r、码字集合C 算法: 1、考查C中所有的码字,若 是 的前缀,则将相应的后缀作为一个尾随后缀码放入集合...3、 输出:判决(是唯一可译码/不是唯一可译码)。 4、 源程序格式整齐清晰,注释简单明了。
  • 目录算法原理代码实现 算法原理 代码实现 ...# 实现唯一可译码 def Unique_Dec(alist, f=[]): # n:序列长度 n=len(alist) n_f=len(f) f_new = [] if n_f == 0: f = alist for i in r...

    算法原理

    唯一可译码准则原理

    代码实现

    #coding :utf-8
    # 实现唯一可译码
    def Unique_Dec(alist, f=[]):
        # n:序列长度
        n=len(alist)
        n_f=len(f)
        f_new = []
        if  n_f == 0:
            f = alist
            for i in range(n):
                # l:序列第i个元素的长度
                l=len(alist[i])
                for j in range(i+1, n):
                    if f[j][:l] == alist[i]:
                        # 如果序列第i个元素是第j个元素的前缀,则将第j个元素的剩下的部分添加到F中
                        f_new.append(f[j][l:])
        else:
            for i in range(n):
                # l:序列第i个元素的长度
                l = len(alist[i])
                for j in range(n_f):
                    if f[j][:l] == alist[i]:
                        # 如果序列第i个元素是第j个元素的前缀,则将第j个元素的剩下的部分添加到F中
                        f_new.append(f[j][l:])
            for i in range(n_f):
                # l_f:f序列第i个元素的长度
                l_f = len(f[i])
                for j in range(n):
                    if alist[j][:l_f] == f[i]:
                        # 如果序列第i个元素是第j个元素的前缀,则将第j个元素的剩下的部分添加到F中
                        f_new.append(alist[j][l_f:])
        # l_n:尾随后缀集的长度
        l_n = len(f_new)
        # 如果尾随后缀集合长度为0,则表示序列有唯一可译码
        if l_n == 0:
            print("是唯一可译码")
            return
        # 如果尾随后缀集中存在与原序列相同的元素,则表示该序列不是唯一可译码
        for k in range(n):
            for h in range(l_n):
                if alist[k] == f_new[h]:
                     print("不是唯一可译码"+"相同的元素是:"+alist[k])
                     return
        Unique_Dec(alist, f_new)
    
    if __name__=="__main__":
        l=["a","c","ad","abb","bad","deb","bbcde"]
        Unique_Dec(l)
    
    
    
    展开全文
  • 唯一可译码/单义代码

    千次阅读 2015-06-19 23:35:00
    单义代码/唯一可译码 Uniquely decodable code 对多个码字(w1,w2,...wn)任意组合成的序列再进行分割,只能唯一地分割成一个个码字. 单义代码不需要同步码 synchronous code 例如: 码字集1:{1,10...


    单义代码/唯一可译码 Uniquely decodable code


    对多个码字(w1,w2,...wn)任意组合成的序列再进行分割,只能唯一地分割成一个个码字.



    单义代码不需要同步码 synchronous code


    例如: 码字集1:{1,10,00}

        码元序列:1100010101 码字集1是单义的

      码字集2:{1,01,00,110} 码字集2是非单义的


    常用的判别唯一可译码的方法

    使用A.A.Sardinas和G.W.Patterson设计的判断法,其步骤如下:


    首先,观察码字集中的所有码字,如果码字Wi是码字Wj的前缀,则将响应的后缀作为一个尾随后缀码放入集合Fi中;

    其次,考察C和Fi两个集合,如果存在Wm属于C是Wn属于Fi的前缀,或者Wn属于Fi是Wm属于C的前缀,则将相应的后缀作为尾随后缀码放入到集合Fi+1当中;

    再次,令F=Fi1UFi2UFi3......即F为码C的尾随后缀集合;

    最后,若F中出现了C中的元素,则可以判断码C不是唯一可译码,若F中没有出现C中的元素,则认为码C是唯一可译码.


    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,394
精华内容 2,557
关键字:

唯一可译码