第一次作业第三问

参考书《数据压缩导论(第4版)》Page 30

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/4 , P(a4)=0.12 

解:

因为:熵 H = -pi * log(pi) (i从1到m),

则有:

( a ) H = 4*1/4*(-log2(1/4))

= 2 (bit).

( b )H=-1/2log21/2 -1/4*log21/4 -2*1/8*log21/8

=1.75 (bit).

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

=-0.505*log20.505  +2*1/4*log24  - 0.12*log20.12

= 0.5 + 1 + 0.37

=1.87(bit).

5.考虑以下序列:

          ATGCTTACGTGCTTAACCTGAAGCTTCCGCTGAAGAACCTG

          CTGAACCCGCTTAAGCTGAACCTTCTGAAGCTTAACCTGCTT

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

解:

序列中有字母84个,其中A出现21次,T出现23次,G出现16次,C出现24次,

得出每个字母的概率值如下:

P(A)=21/84=1/4、P(C)=24/84=2/7、P(G)=16/84=4/21、P(T)=23/84.

则熵为: H = 1/4*log24-2/7*log2(2/7) -4/21*log2(4/21) -23/84*log2(23/84)

= 1.98(bit).

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

            答:

#include<stdio.h>
                     #include<time.h>
                     #include<stdlib.h>

int main()
                     {
                       int a,i,j;
                       char m[100][100];
                       for(i=0;i<100;i++)
                           {
                               for(j=0;j<4;j++)
                                    {
                                         a=rand()%26;
                                         m[i][j]=a+‘a‘;
                                    }
                              m[i][4]=‘\0‘;
                              printf("%d: %s \t",i+1,m[i]);
                           }
                         return 0;
                        }

时间: 2024-10-18 20:10:52

第一次作业第三问的相关文章

第一次作业:一条咸鱼和计算机

第一次作业:一条咸鱼和计算机 第一部分:结缘计算机        我的经历和所有科班和非科班的博主都不太一样,他们大多数是喜欢计算机,或者认为计算机就业情况好,而我却是情非得已.第一次认识计算机应该是小学的时候再学校的机房里,当时的电脑是那种大屁股电脑,贼卡的那种,我们当时的计算机课应该是叫信息课,上课的时候总是偷偷一起玩金山打字里面的游戏,就是警察抓小偷的那个,想想当时一边玩游戏一边还要防被老师发现,还真的是挺刺激的啊.感觉我从前对计算机的印象就等同于玩游戏,小学的时候常年混迹电子厅,虽然经常

软件工程管理——第一次作业

这是软件工程管理课第一次作业,也是我的第一篇随笔. 这篇随笔分为四个部分:1.自我介绍. 2.对这门课的期待. 3.第一周工作统计. 4.第一个小项目(词频统计与四则运算选其一). 一.自我介绍        我叫夏一鸣,是东北师范大学计算机科学与信息技术学院,计算机应用技术专业的研一学生.本科也是东北师大的,专业是计算机科学与技术.我来自湖北咸宁,是一个南方小伙,为人还算随和乐观,希望老师和同学们多多关照. 二.对这门课的期待        我想,大家之所以选了这门课,当然初衷都应该是想学到一

软工实践第一次作业-黄紫仪

软工实践第一次作业 前言:emmmm之前因为没太注意,想着计算机专业怎么会有软工实践.所以之前一直都没去管.等到开学才发现突然翻车.QAQ现在赶紧先来补交一下. (1)回想一下你初入大学时对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的? 你认为过去两年中接触到的课程是否符合你对计算机专业的期待,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?   说到选择计算机,emmmm,某种意义上来说是打RPG游戏打出来的想法,因为很喜欢这类的游戏,所以也想去试着写一个属于自己的这种

java第一次作业0

lsl321 java第一次作业 #1. 本章学习总结 你对于本章知识的学习总结 本章我们学习了各种java相关文件的使用,以及码云,博客,pat等程序辅助软件,这些对于我们专业的学习有非常大的帮助,对于java的使用,目前处于初学者的状态,感觉到比较难. #2. 书面作业 1.为什么java程序可以跨平台运行?执行java程序的步骤是什么?(请用自己的语言书写) 因为java只在jvm中运行,跟平台不是直接接触的.步骤:编写java程序--生成class文件--虚拟机中解释文件. 2.什么是j

第一次作业:基于Orange&#39;s OS系统的进程模型分析与心得体会

1一. 操作系统进程概念模型与进程控制块概念浅析 1. 什么是进程? 图 1 - 1 (WIN10系统任务管理器对进程管理的图形化界面) 计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础. --百度百科 应用程序的实例.对正在运行的程序的抽象. --<现代操作系统> 2. 什么是进程控制块? 进程控制块(Processing Control Block),是操作系统核心中一种数据结构,主要表示进程状态.其作用是使一个在多道程序环境下不能独立

团队项目 第一次作业

#团队项目 第一次作业 团队展示: 1.队名: R0ckstar 寓意:以R星为榜样,做R星般的优化. 2.队员: 姓名 学号 组长 刘天野 20165101 ★ 赵中楷 20165103 ☆ 张承昱 20165115 ☆ 朱思腾 20165111 ☆ 李泊志 20165118 ☆ 谢沛良 20165321 ☆ 3.队员风采: 刘天野 个人风格:爱钻研. 擅长的技术:C.C++.Java. 编程的兴趣:找BUG,补漏洞. 希望的软工角色:后端开发.算法设计. 宣言:洛阳亲友如相问,就说我在码代码

灵魂三问【纪念】

灵魂三问:你是谁?从哪里来?到哪里去? 这是一个哲学问题,同样也是人们的人生问题.有人说把这三个问题想明白了,人生也就明朗了起来.因为人和人的处境不同,所以并没有标准答案,你的答案就是答案. 第一篇内容选择这个话题,当然是要回答一下的,第一是为了懂得自己,第二是帮助你们了解我,第三是留给未来的我. “你是谁?” 这个问题不应该是简单的自我介绍,更是内心深处的介绍.我自知还不能完美总结自己的内心,这也是为什么要开始写文的原因之一:开放内心. 我是周炜琪,生理年龄二十有一,心理年龄四十有三,是一个想

软件工程第一次作业补充

软件工程第一次作业的补充 对于作业"在一周之内快速看完<构建之法>,列出你不懂的5-10个问题". 作业要求有: (1)在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文 (2)列出一些事例或资料,支持你的提问 (3)说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾? 例如:我看了这一段文字 (引用文字),有这个问题 (提出问题):我查了资料,有这些说法

第一次作业——四则运算小程序

这是第一次作业,而且是个人项目,说实话一开始得到作业还是很紧张的.虽然题目比较简单,但是由于自身动手能力很差,所以还是慌得要死. 经过思考和审题,我渐渐有了思路.四则运算主要的难点在于选取数是否是随机数而且是否能保证整数相除能否除尽. 一开始关于选取数是否随机我很苦恼,因为从前写程序变量基本都是自己赋值,没想到怎么随机取数.后来经过同学的点拨,我想到了随机选取函数.比如十以内的四则运算就将0-9赋给a1 再加1就变成1-10了.而保证除尽的问题也很快想到了解决方案,只需要添加一个判断两数相除记过