海明码的形象化理解

文章目录

前言

2021.11.16今天讲的海明码和CRC码真的是阴间,但是能想出创造出这些东西的一定都是大数学家、都是天才。

正文

简单说一说海明码为什么能检测出错误的位数(假设错误位有且只有一位):

  • 课间的时候同学告诉我这个可以用老鼠实验来理解,对应的题目如下:
    在这里插入图片描述
    原文链接:老鼠试药——二进制算法
  • 简单来说毒药那一瓶就是所有死去老鼠喝的药水对应的交集,又因为每个老鼠都能确定一位,有药的那瓶自然就确定下来了
  • 汉明码中插入的k位检测位对应k只老鼠
  • 为什么要按照Ci(i=1,2,4…)的位置将检测位插入到原码中?
    对应到题目中就是对应二进制中只有一个1的水瓶作为老鼠(001,010,100),个人理解这样做的目的是后期算Pi的时候方便。
  • Ci检测的位数(药水瓶)就是编号转化到二进制中log(2)i(log(2)i=1,2,3…|i=1,2,4…)位均为1的所有编号
  • Pi用来表示按照配偶(奇)原则下得到的检测位(老鼠的状态),表示检测的一组中是否存在错误位(对应的老鼠是否死掉了)
  • 最后按照得到的Pi,转化成十进制数就得到了出错位。
  • 以8瓶药水中第6瓶药水有毒为例
  • 0100111海明码
  • 0100101纠正后
  • 数据0101
  • 配偶原则 C1=0,C2= 1,C4=0
  • 插入其中0100101
  • 传输错误0100111(第六瓶有毒)
  • 检测P1=0,P2=1,P4=1(死了2只)
  • P4P2P1=110对应错误位为6
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹清兰香

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值