- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这解释了它,但仅适用于 2 个维度:http://en.wikipedia.org/wiki/Multidimensional_parity-check_code
虽然对于 2 维来说相当容易,但您如何为 3 维或更多维编码?
谢谢。
最佳答案
正如维基百科文章所说,d 维的多维奇偶校验可以纠正 d/2 错误。因此,三维奇偶校验与二维奇偶校验相比没有明显的优势。 (这篇文章不清楚如何处理奇数维度,所以可能有一些优势,但我找到的唯一一篇文章是在付费墙后面,我没有时间自己推导。)
无论如何,这是一个 1×1×1×1 数组的简单情况的四维奇偶校验的图形示例,接下来是更有趣的大小为 2×2×2×2、3× 的数组情况3×3×3 和 4×4×4×4。我用连续的十进制数字和相应的奇偶校验值填充了每个数组。
1×1×1×1 (5/1 original size; 5× expansion)1 1 111
此示例后的字母“a”到“h”是解释如何计算每个奇偶校验码的脚注。
2×2×2×2 (24/16 original size; 1.5× expansion)1 2 3 4 2a 6e5 6 7 8 4b
9 0 1 2 0f3 4 5 6
4c 2d
0g 6h
2×2×2×2数组的注释:
一个。 1、2、3、4、9、0、1、2 的总和(模 10)——水平维度。
乙。 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)。
即。 Sum of 1, 2, 3, 4, 5, 6, 7, 8 (modulo 10) -- 二维屏幕放不下的维度;上面两个 2×2 block 。
9、0、1、2、3、4、5、6 的总和(模 10);降低两个 2×2 block 。
克。 1, 5, 9, 3, 2, 6, 0, 4 (modulo 10) 的总和——二维屏幕上放不下的另一个维度;留下两个 2×2 的 block 。
3、7、1、5、4、8、2、6 的和(模 10);右边两个 2×2 block 。
3×3×3×3 (93/81 original size; 1.148× expansion)1 2 3 4 5 6 7 8 9 4 80 1 2 3 4 5 6 7 8 79 0 1 2 3 4 5 6 7 0
8 9 0 1 2 3 4 5 6 77 8 9 0 1 2 3 4 56 7 8 9 0 1 2 3 4
5 6 7 8 9 0 1 2 3 64 5 6 7 8 9 0 1 23 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 07 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 23 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 69 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 0由于 4×4×4×4 阵列只有 6.25% 的扩展,我看不出比这更进一步的意义,但如果你想这样做,模式应该很明显。
5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 61 2 3 4 5 6 7 8 9 0 1 2 3 4 5 67 8 9 0 1 2 3 4 5 6 7 8 9 0 1 23 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 25 6 7 8 9 0 1 2 3 4 5 6 7 8 9 01 2 3 4 5 6 7 8 9 0 1 2 3 4 5 67 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 89 0 1 2 3 4 5 6 7 8 9 0 1 2 3 45 6 7 8 9 0 1 2 3 4 5 6 7 8 9 01 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
8 2 6 0
0 6 2 8
(我知道我迟到了。但我希望这对其他人问同样的问题有用。)
关于c# - 3维奇偶校验码的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3832451/
我需要能够根据他们的校验位来验证 CUSIP 号码。多亏了维基百科,我有了这个过程的伪代码,但到目前为止我还无法在 PHP 中复制它。 可以找到伪代码here . 我的PHP: watchd
我是一名优秀的程序员,十分优秀!