非二进制字母表的霍夫曼树?

2024-01-01

对于生成的字母表不是二进制的情况,是否有霍夫曼编码树的简单概括?例如,如果我想通过以三进制写出一些文本来压缩它,我仍然可以为我写出的每个字符建立一个无前缀的编码系统。霍夫曼构造的直接概括(使用 k 叉树而不是二叉树)是否仍能正确有效地工作?或者这种结构会导致编码方案效率极低吗?


该算法仍然有效,而且仍然很简单——事实上,维基百科有一个简短的参考n元霍夫曼编码 http://en.wikipedia.org/wiki/Huffman_coding#n-ary_Huffman_coding引用原始的霍夫曼论文作为来源。

不过,我确实想到,就像霍夫曼稍微次优一样,因为它为每个符号分配了整数个位数(与例如算术编码 http://en.wikipedia.org/wiki/Arithmetic_coding),三元霍夫曼应该有点more次优,因为它必须分配整数trits。这不是一个令人震惊的问题,尤其是对于只有 3 的情况,但它确实表明,随着 n 的增加,n 元霍夫曼将进一步落后于其他编码算法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

非二进制字母表的霍夫曼树? 的相关文章

  • 大小为 k 的非连续子序列的最大值的最小值

    在开始之前 我希望这个问题不是重复的 我发现了几个类似的问题 但它们似乎都没有描述完全相同的问题 但如果它是重复的 我会很高兴看到一个解决方案 即使它与我的算法不同 我一直在尝试回答这个问题 https stackoverflow com
  • 将图的 BFS 代码转换为 DFS 代码

    如果这个问题听起来模棱两可 我很抱歉 但我在采访中被问到了这个问题 为图 树中的 BFS 编写一个程序 我使用队列编写了流行的代码 现在他要求我通过修改我刚刚编写的 BFS 代码的一行来将其转换为 DFS 代码 我能想到的唯一答案是使用堆栈
  • 查找 int 中的第 n 个 SET 位

    我想要找到的位置不仅仅是最低设置位n最低的设置但是 我是NOT谈论价值n第 位位置 例如 假设我有 0000 1101 1000 0100 1100 1000 1010 0000 我想找到设置的第四位 然后我希望它返回 0000 0000
  • 与多名推销员一起旅行的推销员?

    我有一个问题已被有效地简化为具有多个推销员的旅行推销员问题 我有一个要从初始位置访问的城市列表 并且必须访问销售人员数量有限的所有城市 我正在尝试想出一个启发式方法 想知道是否有人可以帮忙 例如 如果我有 20 个城市 有 2 名销售员 我
  • 用于将分层平面数据(带 ParentID)转换为带缩进级别的排序平面列表的算法

    我有以下结构 MyClass guid ID guid ParentID string Name 我想创建一个数组 其中包含按层次结构中应显示的顺序排列的元素 例如 根据它们的 左 值 以及将 guid 映射到缩进级别的散列 例如 ID N
  • 查找top-k元素的平均时间复杂度

    考虑在一组 N 个独立且同分布的浮点值中查找前 k 个元素的任务 通过使用优先级队列 堆 我们可以对所有 N 个元素进行一次迭代 并通过以下操作维护一个 top k 集合 如果元素 x 比堆头 更差 丢弃 x 复杂度 O 1 如果元素 x
  • 棒材切割 - 动态规划

    问题陈述 棒材切割问题如下 给定一根长度为n英寸和价格表Pi for i 1 2 3 n 确定最大收益Rn可以通过切割棒并出售碎片来获得 请注意 如果价格Pn对于一根长度的杆n足够大 最佳解决方案可能根本不需要切割 考虑以下情况 n 4 图
  • 实时多人游戏(概念问题)

    我一直在读本文 http developer valvesoftware com wiki Source Multiplayer NetworkingValve 的这似乎解释了他们的多人游戏系统的架构 看起来它们在客户端上延迟了几个刻度 以
  • 什么是日历队列?

    我正在致力于构建一个离散事件模拟器 维基百科提到有几种通用优先级队列非常适合在 DES 中使用 具体来说 它提到日历队列是一个很好的结构 我找到了一份 pdf 1988 年的 其中提到了日历队列 但在大多数情况下我找不到关于它们的任何其他内
  • 如何在 Python 中 gzip 压缩字符串?

    如何在 Python 中 gzip 压缩字符串 gzip GzipFile https docs python org 2 library gzip html gzip GzipFile存在 但那是针对文件对象的 那么对于纯字符串呢 如果你
  • 拓扑排序卡恩算法 BFS 或 DFS

    拓扑排序的方法是BFS还是DFS 哪个正确 我认为BFS是对的 但有些网站说DFS 有些网站说BFS 我很困惑 卡恩算法与 BFS 或 DFS 相同吗 或者BFS 或DFS 只是卡恩算法的工具 Kahn算法和DFS在实践中都用于拓扑排序 选
  • 使用 O(1) 辅助空间迭代二叉树

    是否可以在 O 1 辅助空间中迭代二叉树 不使用堆栈 队列等 或者这已被证明是不可能的 如果可以的话 怎样才能做到呢 编辑 我得到的关于如果有指向父节点的指针就可能实现这一点的响应很有趣 我不知道可以做到这一点 但取决于您如何看待它 这可以
  • JavaScript 中多个数组的笛卡尔积

    如何在 JavaScript 中实现多个数组的笛卡尔积 举个例子 cartesian 1 2 10 20 100 200 300 应该返回 1 10 100 1 10 200 1 10 300 2 10 100 2 10 200 2020
  • 以编程方式设置 Jetty GzipHandler

    我在玩码头GzipHandler它的工作方式似乎相当奇怪 它只压缩已经压缩的文件 我的整个设置是 GzipHandler gzipHandler new GzipHandler gzipHandler setHandler myHandle
  • 将数字 1 排列在二维矩阵中

    给定二维矩阵的行数和列数 初始矩阵所有元素均为0 给定每行中应该出现的 1 的数量 给定每列中应该出现的 1 的数量 确定是否可以形成这样的矩阵 例子 Input r 3 c 2 no of rows and columns 2 1 0 n
  • Welzl 算法的迭代版本

    我正在使用 Welzl 算法来查找点云的最小外接圆 2d 或最小外接球体 3d 不幸的是 该算法具有非常高的递归深度 即输入点数 这个算法有迭代版本吗 我找不到任何并且不知道如何将递归更改为循环 我发现了一些迭代的最小包围圆 球算法 但它们
  • 如何找到权重为 1、0、-1 且成本精确为 0 的多维路径

    我得到了一个有向图 其中有 n 个节点和边 向量的权重 每个向量的长度为 m 为数字 1 0 1 我想找到从一个节点到另一个节点 我们可以多次访问节点 的任何路径 或者说这样的路径不存在 使其权重之和等于仅由零组成的向量 我正在考虑暴力回溯
  • 查找预排序数组中给定值的最低索引

    嘿 我在采访中遇到了这个问题 想知道解决它的最佳方法是什么 假设给定一个已经排序的数组 并且您想要找到某个值 x 的最低索引 这是我想出的 python 伪代码 我只是想知道是否有更好的方法来实现它 def findLowestIndex
  • 带提示的二分查找

    我有一个简单的std vector包含一些已排序的数字 按升序 我想查找一个元素 到目前为止我使用 return std lower bound vec begin vec end needle Where needle是我寻找的元素 然而
  • 拉伸数组

    我有一个形成曲线的样本向量 假设其中有 1000 个点 如果我想将其拉伸到填充 1500 个点 给出不错结果的最简单算法是什么 我正在寻找一些只有几行 C C 的东西 我总是想增加向量的大小 并且新向量可以是当前向量大小的 1 1 倍到 5

随机推荐

  • React 功能组件:如何从外部访问变量 useEffect()

    我已经简化了下面的问题 我正在使用useEffect确保 dom 在选择项目之前已渲染 这非常有效 并且在尝试获取这些元素之前不需要超时 但是如果我想在另一个组件中使用这些值 如何访问它们 The printAll 函数找不到变量 impo
  • Java 泛型方法签名中的类型不匹配

    我有一个Executor调用接口实例的类IService
  • 使用 Android 的 BROTHER SDK 通过 WIFI 打印时出现 ERROR_WRONG_LABEL

    我有 Brother QL 710W 标签打印机 我尝试使用 Brother 的 SDK 通过 WIFI 进行打印 但每次都会收到 ERROR WRONG LABEL 错误 我努力了 尝试使用 Android Brother Sdk 进行标
  • 来自:“1 小时前”,至:timedelta + 准确度

    有没有 逆转人性化 时代的功能 例如 给定 字符串 1分钟前 7小时前 5天前 2个月前 可以返回 对伪代码表示歉意 datetime now 时间增量 1 分钟 精度 60 秒 datetime now 时间增量 7 小时 精度 1 小时
  • 解决歧义

    我有一个带有 3 个创建方法重载的控制器 public ActionResult Create public ActionResult Create string Skill int ProductId public ActionResul
  • 如何使用 C++ 将网站设置为 IE、Firefox、Chrome 和 Safari 的主页?

    有没有办法通过 C 或 C 将 google com 这样的网站设置为主页 如何 不确定你的动机是什么 但我不认为这是我希望我的系统上的任何代码从我的手下出发的事情 这听起来像是广告软件 恶意软件会对您的祖父母所做的事情 一旦设置 他们就不
  • 在 localhost 中使用 facebook 登录

    我正在做一个项目 需要使用facebook API作为用户登录 该文档清楚地说明了使用facebook登录的登录按钮的用法 但是 当我在本地主机上测试该按钮时 它没有给我任何信息 没有错误页面 没有弹出窗口 我正在使用 xampp 进行本地
  • 如何指定特定时区的“今天开始”?

    我有一个带有 时间戳与时区 列的表 我想找到时间戳早于今天的所有行 其中 今天 是在特定时区确定的 我知道如何使用at time zone将文字时间戳解释为处于某个特定时区 并且我知道如何使用date trunc以获得这一天的开始 但我不知
  • 如何在 HTML 中调用外部 JavaScript 函数

    我有一小块代码似乎无法工作 我正在构建一个网站并第一次使用 JavaScript 我的 JavaScript 代码位于外部文件 Marq Msg js 中 如下所示 var Messages new Array Messages 0 Thi
  • javascript中的赋值问题[重复]

    这个问题在这里已经有答案了 这是我正在尝试的代码 我唯一的问题是为什么我的代码没有在 projectAreaContextId 中分配 y 的值 编辑1 我已经更正了一些内容 var xhttp new XMLHttpRequest xht
  • Jquery无法在回调函数中访问$(this)

    我正在创建一个插件 但它无法访问 this 我的插件的简单概述是 function fn myPlugin function options callback return this each function this click fun
  • 使用结构时出现编译器错误 C2143

    我正在使用 Visual C 编译一个简单的 c 并使用 Compile as C Code TC 我收到这个编译器错误 错误 C2143 语法错误 缺少 在 输入 之前 在需要简单结构的行上 struct foo test 使用结构体的
  • 如何让 PyC​​harm 更快/更轻? [复制]

    这个问题在这里已经有答案了 我真的很喜欢 PyCharm 的想法并且很想使用它 然而 它会消耗计算机的处理能力和延迟 这是一个很大的缺点 在不久的将来 我将开设一门 Python 入门课程 并建议学生安装 PyCharm 因为它似乎是最友好
  • XSLT: 不起作用

    我的应用程序中有一个 servlet 过滤器 它拦截所有传入的请求 并尝试从传入的 XML 中去除空格 并将生成的 干净 XML 写入响应 我正在使用 XSLT 来实现这一点 请参阅下面的 XSLT
  • 从数据框中删除方括号[重复]

    这个问题在这里已经有答案了 我有以下数据帧格式的 adtaset 我需要从数据中删除方括号 我们该如何进行任何人都可以帮忙吗 From TO wrestle engage in a wrestling match write communi
  • QMap 支持自定义比较器函数吗?

    我找不到设置自定义比较器函数的方法QMap 就像我可以为std map the typename Compare std less lt Key gt 其模板参数的一部分 Does QMap有办法设置吗 没有记录 我认为这是一个错误 htt
  • Boost 测试不 init_unit_test_suite

    我运行这段代码 define BOOST TEST MAIN define BOOST TEST DYN LINK include
  • 一键安装 Ruby/Rails/SQLite?

    我习惯了一键安装本地环境MAMP http www mamp info en index html 是否有 Ruby 等效项 您可以下载并立即获得本地运行的最新版本的 Ruby Rails SQLite 我使用的是运行 Leopard 的
  • Android:选项卡不会用 Holo 主题填充父级?

    下面的代码创建一个包含 4 个选项卡的视图 使用默认主题 androidmanifest xml 中未定义主题 我得到第一个图像 其中选项卡均匀增长以填充可用空间 如果我将主题设置为android theme android style T
  • 非二进制字母表的霍夫曼树?

    对于生成的字母表不是二进制的情况 是否有霍夫曼编码树的简单概括 例如 如果我想通过以三进制写出一些文本来压缩它 我仍然可以为我写出的每个字符建立一个无前缀的编码系统 霍夫曼构造的直接概括 使用 k 叉树而不是二叉树 是否仍能正确有效地工作