代码之家  ›  专栏  ›  技术社区  ›  aybe

三维奇偶校验码的算法?

  •  0
  • aybe  · 技术社区  · 14 年前

    这就解释了这一点,但仅针对两个维度: http://en.wikipedia.org/wiki/Multidimensional_parity-check_code

    而对于二维空间来说,这相当容易,您如何为它编码3个或更多维度?

    谢谢您。

    2 回复  |  直到 11 年前
        1
  •  1
  •   Adrian Grigore    14 年前

    wikipedia的2d示例将数字分为几行,并计算每行和每列的奇偶性。

    一个3D版本会将数字分布到行、列和层中(可以考虑将多个网格堆叠在一起,形成一个立方体)。然后您只需要计算层组件的奇偶校验位就可以了。

        2
  •  3
  •   Steve    11 年前

    正如维基百科文章所说,对 D 尺寸修正 D /2个错误。因此,与二维奇偶校验相比,三维奇偶校验没有明显的优势。(这篇文章不清楚如何处理奇怪的维度,因此可能有一些优势,但我发现的唯一一篇文章是在付费墙后面,我没有时间自己推导。)

    不管怎样,这里有一个关于1111数组的普通情况的四维奇偶校验的图形示例,接下来是更有趣的2222、3333和4444数组的情况。我用连续的十进制数字和相应的奇偶校验值填充每个数组。

    1×1×1×1 (5/1 original size; 5× expansion)
    1 1 1
    1
    1
    

    本例后面的字母“a”到“h”是说明如何计算每个奇偶校验码的脚注。

    2×2×2×2 (24/16 original size; 1.5× expansion)
    1  2   3  4   2a  6e
    5  6   7  8   4b
    9 0 1 2 0f 3 4 5 6
    4c 2d
    0g 6h

    2222阵列的说明:
    a.1、2、3、4、9、0、1、2(模10)之和——水平尺寸。
    b.5、6、7、8、3、4、5、6(模10)之和。
    c.1、5、9、3、3、7、1、5(模10)之和——垂直尺寸。
    d.2、6、0、4、4、8、2、6的和(模10)。
    e.1、2、3、4、5、6、7、8(模10)之和——不适合二维屏幕的尺寸;上两个22块。
    f.9、0、1、2、3、4、5、6的和(模10);降低两个2_2块。
    g.1、5、9、3、2、6、0、4的总和(模10)——另一个不适合二维屏幕的维度;左两个22个块。
    h.3、7、1、5、4、8、2、6(模10);右两个2_2块。

    3×3×3×3 (93/81 original size; 1.148× expansion)
    1 2 3  4 5 6  7 8 9  4  8
    0 1 2  3 4 5  6 7 8  7
    9 0 1  2 3 4  5 6 7  0
    8 9 0 1 2 3 4 5 6 7 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
    5 6 7 8 9 0 1 2 3 6 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    0 7 4
    6 7 8
    4×4×4×4 (272/256 original size; 1.0625× expansion)
    1 2 3 4  5 6 7 8  9 0 1 2  3 4 5 6  8  0
    7 8 9 0  1 2 3 4  5 6 7 8  9 0 1 2  2
    3 4 5 6  7 8 9 0  1 2 3 4  5 6 7 8  6
    9 0 1 2  3 4 5 6  7 8 9 0  1 2 3 4  0
    5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 6 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8
    9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 2 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
    3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
    8 2 6 0
    0 6 2 8
    因为4444阵列只是6.25%的扩展,所以我看不出比这更进一步有什么意义,但是如果您想这样做的话,模式应该是明显的。

    (我知道我参加晚会迟到了。但我希望这在其他人问同样的问题时有用。)