( ! ) Notice: Undefined index: mobile in /var/www/html/head.php on line 16
Call Stack
#TimeMemoryFunctionLocation
10.0001230208{main}( ).../view.php:0
20.0001230952include( '/var/www/html/head.php' ).../view.php:2
30.0009250312isMobile( ).../head.php:30
数学思维训练网 - 小学计算思维课程(11)-奇偶校验

小学计算思维课程(11)-奇偶校验

小学计算思维课程(11)-奇偶校验

本书共26课,如果您有好的建议,请联系作者:浙江省新昌县城西小学 唐明 147885198@qq.com


第十一课:奇偶校验(2)

上节课,我们学会了怎样使用奇偶检验的方法来检测并修复一个错误。然而,在某些时候可能会同时发生多个错误,那么在这样的情况下奇偶校验是不是还有用呢?

下图所示的卡片每行和每列的黑色卡片数量均为偶数,但其中有两张卡片被翻过了。

问题:

1.哪几行哪几列现在处于错误状态?

2.哪两张卡片被翻动过了?

3.你能找到正确的原始数据吗?

4.如果计算机接收到了一条信息中,检查出了两个比特的错误,那么计算机该如何处理?

5.试一试,你能翻动两张卡片,仍然让每行每列的黑色卡片保持偶数吗?

6.你能做到翻动3张卡片,但不被检测出来吗?

7.你能做到翻动4张卡片,不被检测出来吗?

从上面的操作中,我们可以发现,如果发生了一个错误,它总能被检测出来并能被修复,如果发生2个或3错误,它总能被检测出来,但可能无法修复,如果发生4个错误,它可能连一个错误都无法被检测出来。

当发生多个错误时,有一种特殊的情况,错误不仅可以被检测出来,还能被修复,观察下图并修复图中缺失的一列(灰色方块):

不要小看这种查错并修复的方法,计算机中的RAID硬盘系统采用的就是这样的纠错方法,它通过把数据分散存储在多块硬盘中,并额外添加一块校验硬盘来提高硬盘速度和纠错性能。

比如我们使用8块硬盘来储存数据,这时我们可以把一个字节8个比特数据分别存储于每一块硬盘上,再添加第9块硬盘存放校验数据。当其中的某一块硬盘忽然损坏,丢失了上面的所有数据,我们仍然可以依靠奇偶检验的思路来修复并找回全部数据。请试着找回下面图中的数据:

而且,这样的RAID系统的存取速度飞快,因为一份数据可以同时从8个硬盘上读取,时间最快会缩短为原来读取时间的八分之一。