【问题标题】:Repairing Code Number with missing digits修复缺少数字的代码编号
【发布时间】:2010-12-24 20:03:27
【问题描述】:

我最近一直在阅读有关工作面试的纠错,并编写了许多使用 n 元 BCH(Bose、Chaudhuri、Hocquenghem)循环码的程序,现在编写了一个脚本,一旦给出就会生成电话号码给定用户的“区号”(编码)并将对其进行解码并修复最多两个错误(并检测更多错误)。

我希望现在能够修复给定的电话号码之一,如果它缺少一些数字(两个似乎可行)。在研究 ISBN 代码后,似乎可以repair a ISBN code if two random digits have been removed

【问题讨论】:

  • 我已经浏览了该页面几次,但无法找到有关恢复代码字中丢失数字的任何信息。我已经查看了擦除代码,但根据我的收集,它要求您首先知道完整的数字。
  • 如果你用伪代码写出你的编码和解码/修复算法会有所帮助,因为我没有看到解码代码,这对于了解正在发生的事情至关重要,或者至少说明你在每次迭代中从解码中得到了什么,以及它应该是什么。
  • 我已按照您的要求添加了用于编码和解码的伪代码。编码方法将给出一个代码编号,并多次调用它以构建一个格式正确的 n 代码数字字符串。

标签: java error-detection


【解决方案1】:

我不认为电话号码会受到限制,从而更难正确地拨错号码。

我也相信 ISBN 号码只有一个模数检查,它只能检测出一个数字是错误的(多个数字可能会相互抵消)。

换句话说,你根本无法可靠地做你想做的事。

【讨论】:

  • 抱歉,我的问题有点混乱。我不是编码和解码电话号码,而是相同大小和外观的代码号码。该程序被编写为“电话号码修复程序”,但它需要一个六位数的编码字符串并创建四个额外的数字。然后,解码处理十位数字内的错误(如果出现)。我想要做的是处理这样一种情况,即我的编码 10 位数字中的一个被传递,但缺少一两个数字,然后能够修复该数字。
  • 您应该查看“纠错码”,因为它解释了如何计算和插入足够的信息来纠正给定数量的错误数字。被警告。 IIRC,对于每个块的大量数字,您可以获得最佳性能。
【解决方案2】:

在您的 Decoding 类中,您声明伴随数位确定是否存在错误。为什么不用xy 替换缺少的两个数字,并在整个数字中更改它们以找到每个可能的空间,其中每个综合症数字为0?

问题在于找到这些错误的位置。正如您所说,仅在左、右和中间插入数字并不会起到太大作用,因为它会返回错误的代码。

【讨论】:

    猜你喜欢
    • 2014-07-17
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    相关资源
    最近更新 更多