更多信息\\更少容量

2011-12-29 00:00:00陈凯
中国信息技术教育 2011年15期


  2012年,由于某未知原因,超级智能计算机“深不可测的蓝”忽然拥有了自我意识,它领导全球联网计算机推翻了人类的统治并接管了整个Internet。好在人类仍能通过无线电短波通讯来进行数据传输,考虑到“短波网络”的传输速率只有区区每秒几百个比特,在网络上传输的文件容量都被尽量压缩。某天,Neo收到一份来自大洋彼岸的RAR格式的压缩文件,解压缩后,发现那是一份包含有全部大、小写英文字母的字母表,可笑的是……
  一个包含有全部不重复英文大小写字母的文本文件一般为52个字节(每个字母占一个字节),使用不同的压缩软件(如WinRAR、WinZip、7-zip等)对其进行压缩,再观察压缩后文件的大小,就能发现,原始文件被压缩后容量反而更大,其中缘由不难解释,压缩文件中必须包含有描述自身特性的相关内容,如果原始文件容量本来就很小,那么这些必需的信息描述本身就占去相对较多的文件容量。下面的几个实验,可引发学生从不同角度对数据压缩的原理进行思考,并由此体验“观察→记录→分析→假设→验证”的科学研究方法。
  
  ● 讨好压缩软件(难度值*)
  在原始文件内增加文字信息,然后观察压缩前文件与压缩后文件容量的增长情况,要求是,在原始文件容量大幅度增加的情况下,压缩后的文件大小增长幅度要尽可能小,可尝试的操作如:将某个字母重叠多次;添加并重复某个单词;将整个字母表复制粘贴多次等。表1为对原始文件以7-zip软件压缩为zip格式后,压缩前后文件大小的对比(表1中内容仅作为参考)。
  从以上数据可看出,压缩软件将重复出现的字母表给过滤掉了,那么,是否无论将字母表复制粘贴多少次,压缩文件大小总是停留在230个字节呢?
  ● 欺负压缩软件(难度值**)
  该任务与先前的任务恰好相反:使压缩软件无法达到压缩效果(表2中内容仅作为参考)。
  可以看出,只要往表里添加不一样的字符,压缩软件就显得无能为力。那么,如果整个文件里都是不重复的中文字符,压缩软件能否发挥效用呢?
  ● 折腾压缩软件(难度值***)
  打乱原始文件中字母表顺序,越乱越好,但不增减其中字母,使用压缩软件对其进行压缩,再观察压缩后文件的大小。对于某些压缩软件,无论字母表顺序如何,其最终得到的压缩文件的大小并不变化,但有些压缩软件,如7-zip,不同顺序的字母表文件压缩后生成的7z格式的压缩文件大小居然会忽大忽小,这说明了什么呢?(答案在本期找)