zoukankan      html  css  js  c++  java
  • 第一次作业

    1  书上习题:

    1-1  数据压缩的一个基本问题是“我们要压缩什么”,对此你是怎样理解的?

        答:数据压缩是指在不丢失有用信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间的一种技术方法。数据压缩包括有损压缩和无损压缩。

    1-2  数据压缩的另一个基本问题是“为什么进行压缩”,对此你又是怎样理解的?

        答:首先数据压缩的好处有:较快地传输各种信源;在现有通信干线上开通更多的并行业务;降低发射功率;紧缩数据存储容量。其次,没有数据压缩,由于数据太大,所以网络上就不可能会出现图片、音频、视频等,翻动电话传送的语音也不会变得越来越清晰。

    1-6  数据压缩技术是如何分类的?

        答:数据压缩分为可逆压缩和不可逆压缩,而不可逆压缩在信息论中称熵压缩,熵压缩主要有两大类型,特征抽取和量化,而量化又分为无记忆量化和有记忆量化,有记忆量化包含序列量化和分组量化,分组量化又包含直接映射和变换编码。

    2  参考书上习题:

    2-1  用你的计算机上的压缩工具来压缩不同文件。研究原文件的大小和类型对于压缩文件与原文件大小之比的影响。

        答:在我的计算机上,我对文档、图片和视频分别进行压缩,结果表明视频受影响比较明显,其次是文档,最后是图片。

    2-2  从一本通俗杂志中摘录几段文字,并删除所有不会影响理解的文字,实现压缩。例如,在“This is the dog that belongs to my friend”中,删除is、the、that和to之后,仍然能传递相同的意思。用被删除的单词数与原文本的总单词数之比来衡量文本中的冗余度。用一本技术期刊中的文字来重复这一试验。对于摘自不同来源的文字,我们能否就其冗余度做出定量论述?

        答:我们不能对摘自不同来源的文字的冗余度做定量论述。因为在处理文本时,除了冗余外,还有单词经常重复,而不同来源的文字,重复度不一样。

    3-3  给定符号集A={a1,a2,a3,a4},求以下条件下的一阶熵:

           (a)  P(a1)=P(a2)=P(a3)=P(a4)=1/4

           (b)  P(a1)=1/2,P(a2)=1/4,P(a3)=P(a4)=1/8

           (c)  P(a1)=0.505,P(a2)=1/4,P(a3)=1/8,P(a4)=0.12

        答:公式H=-ΣP(ai)log2P(ai)

             (a)  H=-4*1/4*log21/4=2比特/符号

             (b)  H=-(1/2*log21/2+1/4*log21/4+2*1/8*log21/8)=1.75比特/符号

             (c)  H=-(0.505*log20.505+1/4*log21/4+1/8*log21/8+0.12*log20.12)=1.12比特/符号

    3-5  考虑以下序列:

                                 ATGCTTAACGTGCTTAACCTGAAGCTTCCGCTGAAGAACCTG

                                 CTGAACCCGCTTAAGCTGAACCTTCTGAAGCTTAACCTGCTT

           (a) 根据此序列估计各概率值,并计算这一序列的一阶、二阶、三阶和四阶熵。

           (b)  根据这些熵,能否推断此序列具有什么样的结构?

        答:(a)  A、C、G、T的概率分别为: P(A)=1/4,P(C)=2/7,P(G)=4/21,P(T)=23/84

               H=-(1/4*log21/4+2/7*log22/7+4/21*log24/21+23/84*log223/84)=0.946比特/符号

               (b)根据这些熵,不能推断此序列具有什么样的结构

    3-7  做一个实验,看看一个模型能够多么准确地描述一个信源。

           (a)  编写一段程序,从包括26个字母的符号集{a,b,…,z}中随机选择字母,组成100个四字母单词,这些单词中有多少是有意义的?

        答:

             程序代码:        

            #include<iostream>
            using namespace std;
            #include<cstdlib>
            #include<ctime>
            #include<iomanip>
            int main()
           {
                 int r,i=0,j;
                 char z[100][100];
                 srand(time(NULL));
                 do{
                         for(j=0;j<4;j++)
                        {
                              r=rand()%26;
                              z[i][j]=r+'a';
                              }
                              z[i][4]='';
                              cout<<setw(3)<<i+1<<" "<<z[i]<<" ";
                              i++;
                        }while(i<100);
                  return 0;
    }

        

  • 相关阅读:
    使用C#调用Java带MIME附件WebService方法的初步设想
    到底是哪里给我插的广告?
    jQuery mobile X天教程 目录
    让ksoap支持wsse加密的soap报文
    第一天 认识jQuery mobile 框架,资源,书籍
    谈谈去那里找开源项目
    第二天 jQuery mobile 的Page&Dialogs,Toolbars,Button,listView全接触
    增强型MonkeyRunner 脚本计划
    以前我喜欢盗版,但是,我现在痛恨盗版
    android Handler 机制研究学习笔记
  • 原文地址:https://www.cnblogs.com/wcf220/p/4759844.html
Copyright © 2011-2022 走看看