【问题标题】:Need assitance understanding Sardinas-Patterson algorithm (Algorithm and example provided)需要帮助了解 Sardinas-Patterson 算法(提供算法和示例)
【发布时间】:2016-05-03 19:16:09
【问题描述】:

我很难从下面的幻灯片中理解 Sardinas-Patterson 算法:

我们如何得到C1和C2???

我也是从网上得到这个信息的:

该算法是有限的,因为添加到列表中的所有悬空后缀都是有限码字集的后缀,并且一个悬空后缀最多可以添加一次。

  • {0,01,11}。码字 0 是 01 的前缀,所以加上悬空后缀 1. { 0, 01, 11, 1 }。码字 0 是 01 的前缀,但悬空后缀 1 已经在列表中;码字 1 是 11 的前缀,但悬空后缀 1 已经在列表中。没有其他悬空后缀,因此可以得出结论,该集合是唯一可解码的。
  • {0,01,10}。码字 0 是 01 的前缀,因此将悬空后缀 1 添加到列表中。 { 0, 01, 10, 1 }。码字 1 是 10 的前缀,而悬空后缀 0 是码字。因此,得出结论,该代码不是唯一可解码的。

【问题讨论】:

    标签: algorithm math


    【解决方案1】:

    wiki article 是一个很好的解释

    幻灯片中的 C 对应于 wiki 文章中的 Si

    这是我的描述:

    重要的操作是从 C 中获取两个字符串,如果其中一个是另一个的前缀,则记录删除前缀后留下的后缀。 这就是 C1 的获得方式。

    有以下C2、C3等。 您再次要查找 C 中的单词,这些单词是 Ci 中单词的前缀并取剩余的后缀,但您还想查看 C_i 中的单词并删除 C 中的单词和前缀. C(i+1) 是这些集合的并集。

    只要某些 Ci 包含来自 C 的单词,您就知道该代码不可唯一解码。

    所以:

    C = 1, 011, 01110, 1110, 10011

    C1 = 110(因为 (1)110 在 C 中),0011(因为 (1)0011 在 C 中),10(因为 (011)10 在 C 中)

    C2 = {10(因为 (1)10 在 C1 中),0(因为 (1)0 在 C1 sub>)} union { 011,因为 (10)011 在 C 中 }

    【讨论】:

    • 谢谢!正是我所追求的!一个解释!
    • @Petar Ivanov:011101110011 这个词是怎么决定的?我知道如何获得 c1、c2、...、ci,但他们是如何获得这个词的 011101110011
    【解决方案2】:

    通过查看C中的任何代码字是否是C中任何其他代码字的前缀来找到C1,如果是,则将后缀添加到集合C1中。例如1 是 1110 的前缀,因此您会得到添加到 C1 的后缀 110。

    对于 C2,首先检查 C 中的代码字是否是 C1 中任何其他代码字的前缀,如果是,则制作一组所有“悬空后缀”,然后检查 C1 是否为前缀如果是 C 中的任何代码字,则再次制作一组所有“悬空后缀”。然后你将这两个集合合并,得到 C2。

    希望这有点道理。

    【讨论】:

    • 顺便说一句,C1,他们从哪里得到“10”?
    • C 中的 011 是 C 中 01110 的前缀,因此您得到的后缀是 10
    【解决方案3】:

    集合 C1 和 C2 对应于 this Wikipedia article 中的 S1 和 S2。

    具体来说,C1 是在我们从 C 中取出一个单词并删除其也在 C 中的一些前缀之后可以保留的单词集。

    对于 C2,在我们从 C 中取出一个单词并从 C1 中删除前缀之后,或者在我们从 C1 中取出一个单词并从 C 中删除前缀之后,我们可以保留这些单词。

    如果我们想计算 C3,我们会在从 C 中取出一个单词并删除其在 C2 中的一些前缀之后,取出可以保留的单词,以及从 C2 取出一个单词并删除后可以保留的单词一些它在 C 中的前缀。

    因此,C3 将是:{[empty word], 0, 011, 10, 11, 1110}。它包含空字,因此算法停止并确定 C 不是唯一可解码的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 2015-02-02
      • 2021-11-12
      • 2020-12-31
      • 1970-01-01
      相关资源
      最近更新 更多