当前位置: 首页 > article >正文

算法设计与分析-习题9.4

目录1.a.对于下面的数据构造一套哈夫曼编码b.用a中的编码对文本ABACABAD进行编码。c.对于 100010111001010用a中的编码进行解码。2.出于数据传输的目的我们常常需要一套码长差异最小的编码(在具有相同平均长度的编码中)。针对以下数据构造哈夫曼编码。在权重相同的情况下选择不同的子树会导致两套不同的编码。请计算这两套编码码长的平均值和方差。3.请指出是否每一种哈夫曼编码都有下面的特性a.频率最低的两个字符具有相同的码长。b.频率较高的字符的码长总是小于等于频率较低的字符的码长。4.有一个n个字符构成的字母表它的哈夫曼编码可能具有的最大码长是多少5.a.为哈夫曼树的构造算法写一段伪代码。b.如果以字母表的规模为自变量哈夫曼树构造算法的时间效率类型是什么6.请说明如果字母表中的字符按照它们的使用频率顺序给出则可以在线性时间内构造一棵哈夫曼树。7.给定一棵哈夫曼编码树可以用哪种算法求出所有字符的代码字以字母表的规模为自变量算法的时间效率类型是什么8.请解释如何在不实际构造一棵哈夫曼树的情况下生成一套哈夫曼编码。10.猜底牌 设计一种策略使在下面的游戏中期望提问的次数达到最小([Gar94])。有一副纸牌是由1张A 2张2 3张3… 9张9组成的一共包含45张牌。有人从这副洗过的牌中抽出一张牌问一连串可以回答是或否的问题来确定这张牌的点数。最小期望提问次数 ≈ 2.5~2.7 次1.a.对于下面的数据构造一套哈夫曼编码字符ABCD_出现概率0.40.10.20.150.15先选择最小的B、D然后选_和C再选0.25和0.35最后选A最终为此时的编码b.用a中的编码对文本ABACABAD进行编码。0100011101000101c.对于 100010111001010用a中的编码进行解码。BAD_ADA2.出于数据传输的目的我们常常需要一套码长差异最小的编码(在具有相同平均长度的编码中)。针对以下数据构造哈夫曼编码。在权重相同的情况下选择不同的子树会导致两套不同的编码。请计算这两套编码码长的平均值和方差。字符ABCDE出现概率0.10.10.20.20.4构造的树为A:1100 B:1101 C:111 D:10 E:0平均值4*0.14*0.13*0.22*0.21*0.42.2方差(4-2.2)^2*0.1(4-2.2)^2*0.1(3-2.2)^2*0.2(2.2-2)^2*0.2(2.2-1)^2*0.41.36第二种另外的平均值为2.2方差是0.963.请指出是否每一种哈夫曼编码都有下面的特性a.频率最低的两个字符具有相同的码长。哈夫曼算法第一步就是把频率最小的两个结点合并。它们一定是同一个父结点的左右孩子。从根到它们的深度一样所以码长一定相同。b.频率较高的字符的码长总是小于等于频率较低的字符的码长。哈夫曼树是一棵带权路径长度最优的二叉树它满足频率越大的字符离根越近码长越短频率越小的字符离根越远码长越长。、4.有一个n个字符构成的字母表它的哈夫曼编码可能具有的最大码长是多少要让某个字符的码长最长就要把它一直放在合并的最底层每次都只和最小的节点合并让它一层层往下沉。构造方式最 “不平衡” 的哈夫曼树字符频率1, 1, 2, 4, 8, 16, …后一个是前面所有之和每次都把频率最小的两个合并最早的那个最小字符会一路被压到最深结果叶子节点最大深度 n − 1对应哈夫曼编码最长可能n − 1 位5.a.为哈夫曼树的构造算法写一段伪代码。算法 HUFFMAN(C): 输入: 字符集合 C每个字符 c 有频率 freq[c] 输出: 哈夫曼树的根节点 n |C| // 字符个数 创建最小优先队列 Q 将 C 中所有字符加入 Q // 按频率从小到大排序 // 合并 n-1 次 for i 1 to n-1: 新建一个空节点 z x 最小队列 Q 中取出频率最小的节点 y 最小队列 Q 中取出频率次小的节点 z.left x // x 作为左孩子 z.right y // y 作为右孩子 z.freq x.freq y.freq // 父节点频率 孩子之和 将 z 插入优先队列 Q return Q 中最后剩下的节点 // 根节点b.如果以字母表的规模为自变量哈夫曼树构造算法的时间效率类型是什么一共执行n-1 次合并每次从最小堆取出 / 插入节点的时间是O(log n)所以效率是Θ(n log n)6.请说明如果字母表中的字符按照它们的使用频率顺序给出则可以在线性时间内构造一棵哈夫曼树。普通哈夫曼算法慢是因为用了最小优先队列堆每次取最小要O(log n)。但如果频率已经排好序我们可以用两个普通队列FIFO代替堆队列 Q₁存放初始的 n 个字符结点已按频率升序。队列 Q₂存放每次合并生成的新结点。每次要取两个最小结点时只需要比较 Q₁ 和 Q₂ 的队首O(1)就能取出最小的两个不需要 log n。7.给定一棵哈夫曼编码树可以用哪种算法求出所有字符的代码字以字母表的规模为自变量算法的时间效率类型是什么深度优先遍历DFS 或 广度优先遍历BFS做法从根节点开始遍历整棵哈夫曼树向左走记为0向右走记为1每走到一个叶子节点就得到了该字符对应的编码效率为Θ(n)因为要把每个节点都走一遍8.请解释如何在不实际构造一棵哈夫曼树的情况下生成一套哈夫曼编码。根据字符频率像哈夫曼算法一样不断合并两个最小频率不构建树结构只记录每个字符在合并中被 “下沉” 的层数 码长。这样生成的编码一定是前缀码一定是哈夫曼编码。码长越短字符越靠前相同码长的排在一起第一个字符的编码 全 0长度等于它的码长后面每个字符的编码 前一个编码1二进制加 1如果当前字符码长比前一个长就在后面补 010.猜底牌 设计一种策略使在下面的游戏中期望提问的次数达到最小([Gar94])。有一副纸牌是由1张A 2张2 3张3… 9张9组成的一共包含45张牌。有人从这副洗过的牌中抽出一张牌问一连串可以回答是或否的问题来确定这张牌的点数。使用哈夫曼编码构造最优二叉决策树。每次合并频率最小的两组牌让出现频率越高的牌需要的是 / 否提问次数越少。这样可以使期望提问次数达到最小。最小期望提问次数 ≈2.5~2.7 次精确值139/45 ≈3.09次

相关文章:

算法设计与分析-习题9.4

目录 1. a.对于下面的数据构造一套哈夫曼编码: b.用a中的编码对文本ABACABAD进行编码。 c.对于 100010111001010用a中的编码进行解码。 2.出于数据传输的目的,我们常常需要一套码长差异最小的编码(在具有相同平均长度的编码中)。针对以下数据构造哈…...

金仓数据库在文档型数据迁移中的实践复盘:从MongoDB协议兼容到政务系统平滑替换

金仓数据库在文档型数据迁移中的实践复盘:从MongoDB协议兼容到政务系统平滑替换 凌晨2:17,监控告警再次触发——电子证照系统“亮证查询”接口响应超时率突破8%,MongoDB从库CPU使用率持续高于95%,慢查询日志中频繁出现多层嵌套的…...

一天一个开源项目(第54篇):Supabase - 开源的 Postgres 开发平台,Firebase 替代方案

引言 “The Postgres development platform. Supabase gives you a dedicated Postgres database to build your web, mobile, and AI applications.” 这是「一天一个开源项目」系列的第 54 篇文章。今天介绍的项目是 Supabase(GitHub)。 想用 Firebas…...

博弈论详解 3(SG定理的运用)

时隔一年半,主播再次回到博弈论。这次是练习时间!!! 如果你没有学过SG定理或者想要复习一下 如果没有看过之前的前置文章的可以先看零基础知识讲解。 Episode 1(Nim基础):https://blog.csdn.n…...

ESP-IDF 简介

ESP-IDF(Espressif IoT Development Framework)是乐鑫(Espressif Systems)为 ESP 系列芯片开发的物联网开发框架。它支持 ESP32、 ESP32-S、 ESP32-C 和 ESP32-H 系列 SoC,基于C/C语言提供了一个自给自足的 SDK&#x…...

linux内核 Netfilter

Netfilter 是 Linux 内核中一套模块化、可扩展的网络数据包处理框架,是 iptables、nftables、firewalld 等防火墙工具的底层核心,负责实现数据包过滤、NAT、连接跟踪、流量整形等网络功能。Netfilter 是 Linux 内核内置的网络数据包处理框架,…...

关于 HarmonyOS 版本的简述

1、所有版本 HarmonyOS 已面向开发者发布的所有版本清单如下: 2、推荐开发版本 目前官方推荐使用 6.0.0(20) 版本,配套的工具为 DevEco Studio 6.0.0 Release(6.0.0.858) 版本。6.0.0(20) Release 开发者套件配套信息如下: 3、应用工程…...

OpenClaw 第十三篇:核心技术实现拆解——从指令输入到执行落地的全链路原理

OpenClaw 第十三篇:核心技术实现拆解——从指令输入到执行落地的全链路原理前面十二篇我们聚焦OpenClaw的实操落地,从基础部署、本地自动化,到远程操控、职场场景全覆盖,相信大家已经能熟练用它解决实际问题。但很多技术爱好者、开…...

【数据库】金仓数据库智能SQL防护机制,实现99.99%异常语句精准拦截

文章目录前言一、注入风险:隐藏在输入背后的隐患二、三种模式:构建灵活的“智能准入系统”三、高效、精准、易用:理想的安全防护标准1. 99.99%的识别准确率,近乎“零误判”2. 性能损耗低于6%,业务无感知3. 两步配置&am…...

【JWT】JWT(JSON Web Token)结构化知识体系(完整版)

文章目录JWT(JSON Web Token)一、基础认知层:定义与核心边界1. 核心定义2. 诞生背景3. 适用与不适用场景二、核心结构层:JWT的标准格式与字段规范1. Header(头部)2. Payload(载荷)3.…...

3-1课堂笔记

import os import json import requests from bs4 import BeautifulSoup# 数据采集基础知识:豆瓣读书T250的数据的获取 def getHTML(n):# 获取每一张含有25本书的网页,n为页码-1url "https://book.douban.com/top250"header {"user-age…...

CentOS 7.5/RHEL 7.x 配置 YUM 源(阿里云镜像+本地源双方案)

CentOS 7.5/RHEL 7.x 配置 YUM 源(阿里云镜像本地源双方案)【实操指南】CentOS 7.5/RHEL 7.x 配置 YUM 源(阿里云镜像本地源双方案)环境说明前置准备:备份原有 YUM 源方案一:配置阿里云 CentOS 7 镜像源&am…...

企业微信ipad协议的消息扩展字段与业务数据注入

企业微信ipad协议的消息扩展字段与业务数据注入 在企业微信的深度集成场景中,单纯收发消息往往无法满足业务需求。如何将内部系统的工单号、客户标签、订单状态等信息与聊天消息绑定,实现跨系统的数据关联?企业微信ipad协议通过预留的扩展字段…...

别盲目入行网安!一文看懂所有网安岗位岗位职责与发展方向

网络安全可以从事哪些岗位 伴随着社会的发展,网络安全被列为国家安全战略的一部分,因此越来越多的行业开始迫切需要网安人员,也有不少人转行学习网络安全。那么网络安全可以从事哪些岗位?岗位职责是什么?相信很多人都不太了解,…...

安装显卡驱动报错提示“7-Zip:CRC error“

目录问题描述解决方案问题描述 我的设备信息如下 安装驱动(591.86-desktop-win10-win11-64bit-international-dch-whql.exe)报错:7-Zip:CRC error 解决方案 打开选择电源计划–>选择节能–>重启电脑–>管理员身份再打开驱动安装程序 创建的时候按照自己的需求即可 …...

【软件开发设计全流程及工具推荐】从需求到部署的完整指南

文章目录软件开发设计全流程及工具推荐:从需求到部署的完整指南一、引言二、软件开发全流程2.1 整体流程概览三、需求分析阶段3.1 核心任务3.2 推荐工具3.3 实践建议四、系统设计阶段4.1 设计层次4.2 推荐工具4.3 架构设计示例五、编码实现阶段5.1 编码规范5.2 推荐…...

避开这些弯路,智慧校园平台这样选才靠谱

✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…...

面对open claw的安全问题:我开源一个 MCP 安全检测项目

面向 MCP Server 的风险扫描、策略评估、运行时隔离与审计追踪 最近一直在看 MCP 生态,也在认真想一个问题: 如果 MCP Server 越来越多,大家开始频繁安装、调用、组合第三方工具,那么它的安全边界到底在哪里? 现在很…...

STM32常用变量类型位数及取值范围

STM32 是 32 位单片机&#xff0c;类型大小固定不变&#xff0c;所有类型大小都遵循标准。uint8_t/uint16_t/uint32_t/uint64_t 来自头文件 #include <stdint.h>&#xff0c;是标准精确类型&#xff08;STM32 官方库强制使用&#xff09;。一、对应关系无符号类型等价的基…...

额度紧缩、token涨价:OpenClaw带来的新行情

这是一篇为您深度重构后的 CSDN 技术博客。我结合了 Gemini CLI 最新的配额政策、MCP 协议的架构演进&#xff0c;以及开发者在 2026 年面临的真实成本压力&#xff0c;去除了敏感表述&#xff0c;强化了实战案例与架构深度。额度紧缩、Token 涨价&#xff1a;OpenClaw 开启的“…...

LabVIEW调用TensorFlow深度学习教程

labview调用TensorFlow深度学习教程一、前言随着人工智能技术的快速发展&#xff0c;深度学习已经成为众多领域研究的热点。LabVIEW作为一种强大的工程开发环境&#xff0c;其与TensorFlow的结合使用&#xff0c;能够更高效地实现深度学习模型的开发与应用。本教程将介绍如何使…...

【Unity游戏框架】PlayMaker 技术解析:Unity最经典的可视化状态机开发工具

在 Unity 的开发生态中&#xff0c;可视化脚本&#xff08;Visual Scripting&#xff09;一直是降低开发门槛的重要工具。其中最具代表性的插件之一&#xff0c;就是来自 Hutong Games 的 PlayMaker。 PlayMaker 并不是简单地把 Unity API 拆成节点&#xff0c;而是基于 有限状…...

[具身智能-25]:为什么具身智能的整机厂家要提供开放的开发套件?

具身智能&#xff08;Embodied AI&#xff09;整机厂家&#xff08;如宇树、智元、傅利叶、特斯拉等&#xff09;之所以大力提供开放的开发套件&#xff08;SDK 硬件接口 仿真环境&#xff09;&#xff0c;并非单纯为了“做慈善”&#xff0c;而是基于技术瓶颈、生态构建、商…...

AD里面可能会用到的一些规则

---PlaneClearance中的间距比较大&#xff08;可能会切割负片面&#xff0c;造成铜皮不完整&#xff09;--的话&#xff0c;可以设置成8Mil左右&#xff0c;这是一个比较合理的距离---关于铜皮的连接方式考虑手工焊接的简易性的话十字连接&#xff08;下图中第一个&#xff09;…...

Java毕业设计基于springboot的玩具租赁系统(编号:89227201)

前言 基于Spring Boot的玩具租赁系统是一个高效、易用、安全的玩具租赁平台。该系统采用了先进的技术栈和优秀的开发框架&#xff0c;实现了用户注册与登录、用户信息管理、玩具管理、租赁管理、支付功能和消息通知等主要功能模块。同时&#xff0c;系统还具有高效性、易用性、…...

异步电机模型预测电流控制(MPCC)的 Simulink 实现探索

异步电机模型预测电流控制/MPCC simulink搭建的异步电机模型预测电流控制模型&#xff0c;磁链观测器为电流型&#xff0c;加入了一延迟补偿和预励磁 附带说明文档和相关参考文献&#xff0c;模型已经调好&#xff0c;可跑出图中效果&#xff0c;默认发送2023b版本的simulink模…...

大模型Token入门详解:概念、原理、换算与核心作用【AI基础】

用通俗直白的语言拆解Token相关知识点&#xff0c;全程无晦涩术语&#xff0c;适合AI初学者、大模型入门人群快速掌握核心逻辑&#xff0c;干货好懂易记。 一、Token核心定义&#xff1a;大模型的语言基础单元 我们常说的大语言模型上下文窗口&#xff0c;它的计量单位并不是日…...

Java毕业设计基于springboot的办公用品管理系统h24vr2p3_242

前言 随着企业规模的扩大和办公需求的增加&#xff0c;办公用品管理成为了一个重要的问题。传统的办公用品管理方式往往依赖于人工记录和跟踪 &#xff0c;这种方式不仅耗时费力&#xff0c;而且容易出错。因此&#xff0c;开发一个基于Spring Boot的办公用品管理系统具有重要的…...

毕业季干货|让论文效率翻倍的实用神器

我梳理了毕业之家和PaperRed的核心功能&#xff0c;并补充了两款专注于英文论文写作的高效工具。这些工具覆盖了从初稿生成、查重降重到英文学术润色的全流程&#xff0c;希望能帮你更高效地完成论文。 &#x1f393; 毕业之家&#xff1a;一站式毕业全流程专家 官网&#xff…...

如何解决modelsim闪退

...