实验2.1 计算文件的信息量
基本信息
实验名称:2.1 计算文件的信息量
实验类型:设计型
实验地点:分散
内容
编写一个程序,计算任意指定的一个文件的信息量(假设文件是离散无记忆的)。编程实验要求如下:
- 程序名为
calcInfo,只在命令行调用,不应有图形界面、问答等任何用户交互形式。程序的命令行调用规范如下:
calcInfo INPUT OUTPUT
参数说明:
INPUT 待计算信息量的输入文件路径
OUTPUT 存放计算结果的输出文件路径
其中,OUTPUT文件应是纯文本文件。每次运行calcInfo之后,将会在OUTPUT文件后添加一行计算结果(注意:不是覆盖),格式为
"文件名","平均每个字节的信息量(比特)","文件长度(字节)"
例如:命令行输入
calcInfo t:\data\file1.dat t:\data\calcInfo.output.csv
后,文件t:\data\calcInfo.output.csv中应会增加一行类似以下的文字记录:
"t:\data\file1.dat","3.452345","53463"
【分析讨论】怎么判断程序所计算出来的信息量是不是对的?
- 自行选择3种不同类型的文件:纯文本文件(txt)、压缩包(rar/7z等)、图像文件(jpg/png等),每种类型找3个不同的文件(都在10KB-100KB之间),共9个文件。调用calcInfo程序计算它们的信息量。
【分析讨论】(a)描述同类型文件的信息量的共同点、不同类型文件的信息量的不同点;(b)从信息论的角度,分析产生这些异同点的原因。
提交
- 7z压缩包,内容和结构模仿教师提供的参考压缩包。其中必须包含:
- 可执行程序(Python编写的程序除外)、程序源代码
- 程序运行方法说明文档
- 单元测试的输入与输出
- 实验的输入与输出(原始数据文件)
- 实验报告
- 实验报告文档格式自拟,无严格要求,简洁美观即可。
Tips
- 命令行参数的分析处理,是非图形界面程序的重要环节。很多计算机语言提供了方便的工具来简化相关编程,Python标准库中的
argparse包就是其中之一。 - CSV (Comma Separated Values) 文件格式是非常流行的数据交互格式。很多计算机语言提供了方便的工具来简化相关编程,Python标准库中的
csv包就是其中之一。 - 以二进制方式读写文件,是信号处理、信息处理、通信、编码等领域频繁需要进行的操作。
4674

被折叠的 条评论
为什么被折叠?



