第一次作业

1.1 我们要压缩什么。

答:我们要压缩占用比例过大,影响操作的事物。

1.2 为什么要进行压缩。

答:举个例子吧,一个箱子如果装石块,只能装五斤。但是装沙子,就可以装8斤。如果装整块石头,就是10斤了。大大提高了资源利用率。

1.6 数据压缩是如何分类的

答: 数据压缩分类方法繁多,尚未统一。我理解的有两种。一种是可逆压缩与不可逆压缩。另一种是有损压缩和无损压缩

1.4.1

原文件为PNG(11kb)和JPEG(800kb)格式的图片,压缩过后大小并没有变化。原文件为EXE(888kb)和(5.6MB)格式的文件,压缩过后为(397kb)和(4.7MB).ps:在文件夹内压缩和直接压缩无影响。原文件为TXT(50KB)和(110kb)压缩过后均为(23kb).

由以上两点可以得出。1.压缩文件有些压缩了占用内存并不会变小。2.越大的文件压缩的效率越低。3.一样的文件复制过后再压缩并不会使压缩过后的文件占用内存变大。

1.4.2

冗余度,通俗的讲就是数据的重复度。

因为删除所有不会影响理解的文字,所以我们能就冗余度做出定量论述。

page 30

3. a)H=4*(1/4)*log24=2 bits

    b)H=1/2*log22+1/4*log24+2*(1/8)*log28=7/4 bits

    c)H=-0.505*log20.505+1/4*log24+1/8*log28-0.12*log20.12

         ≈0.5+0.5+3/8+0.12(2-log23)

         ≈1.475+0.12*0.4=1.523 bits

5.  a)S=84, SA=21,ST=23,SG=16,SC=24

    H=-21/84*log2(21/84)-23/84*log2(23/84)-16/84*log2(16/84)-24/84*log2(24/84)

      ≈0.5+0.8+0.5+0.6=2.4 bits

   b) 无,只会一阶熵

7. a) 代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
 int a;
 char Word;
 int i=0,j=0;
 for(j;j<=99;j++)
 {
 for(i;i<=3;i++)
 {
 a=rand()%25;
 Word='a'+a;
 printf("%c",Word);
 }
 printf("\t");
 i=0;
 }


return 0;
}

结果如下:

 

字母组成完全杂乱无章。

 

posted @ 2015-08-26 20:50  周进刚  阅读(184)  评论(1编辑  收藏  举报