做网站一年赚多少钱,遵义酷虎网站开发,建筑平面设计图用什么软件,wordpress 慢途网主题1. 什么是等长编码#xff1f;想象一下#xff0c;你要给班上的每个同学发一个编号#xff0c;方便点名。等长编码#xff1a;就是规定每个同学的编号长度都一样。比如#xff1a;规定编号必须是两位数字。那么#xff0c;张三就是 01#xff0c;李四就是 02#xff0c…1. 什么是等长编码想象一下你要给班上的每个同学发一个编号方便点名。等长编码就是规定每个同学的编号长度都一样。比如规定编号必须是两位数字。那么张三就是01李四就是02王五就是03……所有人的“代码”长度相同都是2个字符。2. 什么是唯一可译性“唯一可译”就是指当你看到一串编码时你只能有一种方法把它切开还原成原来的消息而不会有歧义。让我们通过两个例子来感受一下场景一完美的等长编码唯一可译假设我们只有三个同学张三01、李四02、王五03。老师点名老师收到一串数字010203。解码过程因为是等长编码老师知道每个编号长度是2。所以他会自动地、下意识地按两位一组切开010203。结果这只能被翻译成“张三 李四 王五”。没有第二种切法因为如果你从中间开始切比如10、20、3这些都不是有效的编码因为10不是任何人的编号。所以这就是唯一可译的。场景二出问题的等长编码不是唯一可译等长编码本身是“唯一可译”的吗不一定上面的例子看起来没问题是因为我们假设了每个编码都是独一无二的并且解码器知道长度。那问题出在哪呢问题主要出在码字的选取上。假设还是两位等长编码但我们换了种编号方式张三01李四10王五11现在老师收到一串数字0110。解码器按两位切开0110- 翻译成“张三 李四”。看起来没错好像还是唯一的啊别急我们再加一个同学赵六00再来看另一个例子。老师收到1011。按两位切开1011- “李四 王五”。没问题。但等长编码的“非唯一可译”隐患并不在于切分方式因为长度固定切分方式本身是唯一的而在于边界混淆吗不对于纯等长编码边界混淆比如把01当成0和1在解码器知道固定长度的情况下不会发生。其实等长编码要保证唯一可译核心条件是编码必须是单射的。更通俗地说等长编码只要保证每个原始信息比如每个字、每个符号被分配一个独一无二的、固定长度的码字那它就是唯一可译的。但是有一种特殊情况被称为“逗号码”问题。如果码字之间是“无缝衔接”的并且新消息开始的地方恰好和上一个码字的末尾构成了一个有效码字从理论上讲如果解码器丢失了同步可能会出现问题。但在理想情况下知道长度、从开头同步不会。严谨的信息论告诉我们等长编码要做到唯一可译必须满足一个条件不同的原始符号必须对应不同的码字。也就是说码本必须是一个一一映射。只要满足这一点解码器就可以通过简单地按固定长度截取来唯一地恢复原始消息。总结一下等长编码每个符号的代码长度相同。唯一可译性条件每个符号对应的代码必须是独一无二的即编码函数是单射。结果只要满足上面的条件按固定长度切割就能无歧义地恢复原消息。3. Mermaid 总结框图下面这张图梳理了从编码到解码并判断是否唯一可译的整个逻辑。框图解读编码原始消息进入等长编码器。编码器手里有一个码本。码本要求这个码本必须满足两个条件——①所有码字长度相等②每个码字对应唯一的符号。唯一可译性判断如果满足条件2一一对应那么这个编码就是唯一可译的。如果不满足条件2比如两个不同的人用了同一个编号那这个编码就是非唯一可译的一定会产生歧义。解码无论哪种情况解码器都会按固定长度去切割收到的码字序列。如果是唯一可译的查码本后就能准确恢复原始消息。如果是非唯一可译的查码本时就会遇到混乱不知道切出来的码字对应谁导致无法准确恢复原始消息。