读改变未来的九大算法笔记03_纠错码

这篇具有很好参考价值的文章主要介绍了读改变未来的九大算法笔记03_纠错码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

读改变未来的九大算法笔记03_纠错码

1. 真正根源

1.1. 在电报和电话等通信系统中出现的

1.2. 理查德·汉明创造了第一批纠错码:一种近乎神奇的能侦测并纠正计算机数据中错误的算法

2. 信息理论学的一部分

2.1. Information Theory

2.2. 香农通过数学展示了有可能从根本上通过一个嘈杂的、引发错误的链接实现错误率极低的通信

2.3. 即便是极端不可靠的通信频道也可以以极低的错误率传输数据

2.4. 没有纠错码,计算机和通信系统就会比现在慢很多,功能弱许多,可靠性也会差很多

3. 计算机三项基本工作

3.1. 执行计算

3.2. 存储数据

3.3. 传输数据

4. 错误侦测及纠正的需求

4.1. 计算机要无误地存储和传输的信息量绝对是海量

4.2. 精确度达到99.999 9%也还是不够好

4.3. 必须能在存储和传输数十亿“块”信息的情况下,不犯任何一个错误

5. 杂项

5.1. overhead

5.2. 为确保消息被正确接收而发送的多余信息

5.3. 一个纠错系统的“杂项”就是在发送消息本身以外要发送的额外信息量

6. 重复把戏

6.1. 同时侦测和纠正数据中错误的方法

6.2. 要确保一些信息被正确地传输,只需重复几次该信息

6.3. 通过重复一条不可靠的消息足够多次,就可以让消息的可靠性高到让你满意为止

6.4. 假设错误随机发生。相反,如果一个恶意实体故意干扰传输,并选择制造某些错误,重复把戏都会变得不可靠

6.5. 通过使用重复把戏,不可靠通信的问题能够被解决,错误基本上能被消灭

6.6. 你发送的额外东西就是更多份原始消息

6.6.1. 杂项数量巨大,因为必须发送数份完整消息

7. 代码字

7.1. code words

7.2. 示例

7.2.1. “one”(一)、“two”(二)、“three”(三)

8. 冗余把戏

8.1. The Redundany Trick

8.2. 同时侦测和纠正数据中错误的方法

8.3. 基本原则

8.3.1. 你不能只发送原始消息,你要发送一些多余的东西以增加可靠性

8.4. 示例

8.4.1. “5 213.75”

8.4.1.1. five two one three point seven five

8.4.1.2. fiqe kwo one thrxp point sivpn fivq

8.4.1.3. 使用了一条冗余消息,所以对消息中的任何单个变化进行可靠侦测及纠正变得可行

8.4.2. 数字“367”代表了一个数

8.4.2.1. 因为这条消息中没有冗余,其中一个数字被替换,就没办法知道原始数字是多少

8.5. (7,4)汉明代码(Hamming code)

8.5.1. 理查德·汉明于1947年在贝尔实验室发明的代码之一

8.5.2. 所有事情都通过0和1完成

8.5.2.1. 现实生活中使用的所有代码也限用这两个数字

8.5.3. 在编码时,每一组4位数字都加入了冗余,由此产生了一个7位数的代码字

8.5.4. 在解码时,你首先要为接收的7位数寻找完全匹配,如果寻找完全匹配失败,就选择最接近的匹配

8.5.5. 7位数代码字中的任何错误都能得到确定无疑的纠正

8.5.6. 只能纠正7位数代码字中的一个错误

9. 校验和把戏

9.1. 不管纠错,而是将精力集中在侦测错误上

9.2. The Checksum Trick

9.3. “check”(校验)消息的“sum”(和)就是术语“checksum”(校验和)的由来

9.4. 假设我们所有的消息都只由数字组成会更方便些

9.4.1. 这是一个非常真实的假设,因为计算机用数字存储所有的信息,只有在向人展示信息时,才把数字转译成文本或图像

9.5. 简单校验和

9.5.1. Simple Checksum

9.5.2. 只需将消息中的所有数字相加,只保留结果的最后一位数,剩下的数字就是你的简单校验和

9.5.3. 只需在发送原始消息前,将原始消息的校验和附加到消息末尾即可

9.5.4. 如果只有一个错误,简单校验和绝对能保证侦测到它

9.5.5. 两个或更多错误,简单校验和或许能侦测到它们,但也有可能侦测不到

9.5.6. 示例

9.5.6.1. 4 6 7 5 6

9.5.6.2. 4+6+7+5+6=28

9.5.6.3. 只保留最后一位数8

9.5.6.4. 4 6 7 5 6 8

9.5.7. 只能保证对相对较短的消息奏效(少于10位数)

9.6. 阶梯校验和

9.6.1. Staircase Checksum

9.6.2. 像之前一样把数字相加,但每个数都要和该数字所在位阶数相乘,每个数都比前一个数大一个位阶

9.6.2.1. 楼梯台阶编号为1、2、3……依此类推

9.6.3. 示例

9.6.3.1. 4 6 7 5 6

9.6.3.2. (1×4)+(2×6)+(3×7)+(4×5)+(5×6)=4+12+21+20+30=87

9.6.3.3. 只保留最后一位数7

9.6.3.4. 4 6 7 5 6 7

9.6.4. 只能保证对相对较短的消息奏效(少于10位数)

9.7. 首先是简单校验和,其次是阶梯校验和

9.7.1. 4 6 7 5 6

9.7.2. 4 6 7 5 6 8 7

9.7.3. 可以保证这条消息要么是正确的,要么至少有三处错误

9.7.4. 只要错误不超过两处,你就都能够侦测到错误

9.7.5. 只能保证对相对较短的消息奏效(少于10位数)

9.8. 加密哈希函数(Cryptographic Hash Function)的特定校验和

9.8.1. 软件包的校验和比不上软件包大小的十万之一

9.8.2. 使用这种长度的校验和侦测错误,其失败的概率极其微小,在现实中几乎不可能失败

9.8.2.1. 尤其是在恶意敌人而非糟糕信道的随机变动对信息做出改变时

10. 定位把戏

10.1. The Pinpoint Trick

10.1.1. 能让你迅速定位一处错误

10.2. 二维奇偶校验码

10.2.1. Two-Dimensional Parity

10.2.2. 被形容为二维,是因为消息被放在有两个维度的表格(行和列)中

10.3. 如果你有一条长消息,就将其打碎成16位数长的“块”,并单独处理每“块”数据

10.4. 如果消息比16个数字短,就用0把它补成16位数

10.5. 示例

10.5.1. 4 8 3 7 5 4 3 6 2 2 5 6 3 9 9 7

10.5.2.

4 8 3 7

5 4 3 6
2 2 5 6
3 9 9 7

10.5.2.1. 重新排列成一个从左往右、自上向下读的方框

10.5.3.

4 8 3 7 2

5 4 3 6 8
2 2 5 6 5
3 9 9 7 8

10.5.3.1. 算每一行的校验和,并添加在每行的右侧

10.5.4.

4 8 3 7 2

5 4 3 6 8
2 2 5 6 5
3 9 9 7 8
4 3 0 6

10.5.4.1. 算每一栏的简单校验和,并将其添加在每列的底部

10.5.5. 4 8 3 7 2 5 4 3 6 8 2 2 5 6 5 3 9 9 7 8 4 3 0 6

10.5.5.1. 重新排列所有数,让其能以一次一个数的方式被存储或传输

10.5.5.2. 从左往右、自上向下的方式读数

10.5.6. 4 8 3 7 2 5 4 3 6 8 2 7 5 6 5 3 9 9 7 8 4 3 0 6

10.5.7.

4 8 3 7 2 2

5 4 3 6 8 8
2 7 5 6 5 0
3 9 9 7 8 8
4 3 0 6
4 8 0 6文章来源地址https://www.toymoban.com/news/detail-470720.html

10.5.7.1. 不同之处的位置正好说明了通信错误出现的位置

10.5.7.2. 错误同时被定位和纠正了

11. 里德–所罗门(Reed-Solomon)代码

11.1. 能被用来纠正每个代码字中的众多错误

11.2. 基于一个名为有限域代数(Finite Field Algebra)的数学分支,结合了阶梯校验和及二维定位把戏的特色

11.3. CD、DVD和计算机硬盘中都用到了

12. 现实中的运用

12.1. 一般用于侦测而非纠正错误

12.2. 以太网

12.2.1. CRC-32

12.3. 软件包

12.3.1. MD5

12.3.1.1. 约40位数

12.3.2. SHA-1

12.3.2.1. 约50位数

12.3.3. SHA-256

12.3.3.1. 约75位数

12.3.4. SHA-512

12.3.4.1. 约150位数

12.4. 低密度奇偶校验码(Low-Density Parity-check Codes)

到了这里,关于读改变未来的九大算法笔记03_纠错码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 读改变未来的九大算法笔记02_数据库

      2.1.1. 当一个程序崩溃时,它会丢掉所有正在处理的东西 2.1.2. 只有安放在计算机文件系统中的信息会得到保存 2.1.3. 崩溃相当宽泛:包括任何可能导致计算机停止运行进而损失数据的事 2.1.3.1. 可能的事件包括断电、硬盘出错、其他硬件出错,以及操作系统或应用程序中的

    2024年02月08日
    浏览(33)
  • 读改变未来的九大算法笔记07_搜索引擎

    1.1.1.1. 惠普(Hewlett-Packard) 1.2.1.1. 从一间卧室开始的,空间很快就不够用了,于是他们转移到了车库 1.3.1.1. 谷歌 1.3.1.1.1. 门洛帕克车库 2.1.1.1. 美国工程师范内瓦·布什(Vannevar Bush) 2.1.1.2. 论文《诚若所思》(As We May Think) 2.1.1.3. 一台被称作麦麦克斯(memex)的机器

    2024年02月08日
    浏览(41)
  • 读改变未来的九大算法笔记09_指尖的精灵

    5.1.2.1. 编译器 5.1.2.2. 程序验证技术 5.2.2.1. 排序算法(快速排序等) 5.2.2.2. 图形算法(迪杰斯特拉最短路径算法等) 5.2.2.3. 数据结构(哈希表等) 5.3.2.1. CPU(中央处理器) 5.3.2.2. 监视器 5.3.2.3. 网络

    2024年02月08日
    浏览(27)
  • 读改变未来的九大算法笔记05_数字签名

    3.3.1.1. 钟大小为11的乘法表 3.5.2.1. 欧几里得算法也能根据钥匙值计算出挂锁值,而这一算法要比暴力破解高效得多。这也是乘法方法被认为不安全的原因 4.2.1.1. 钟大小为22时n的三次方和七次方的值 4.5.1.1. 发明一种高效的分解因子算法只会破坏类RSA机制

    2024年02月08日
    浏览(36)
  • 数据结构与算法之美学习笔记:42 | 动态规划实战:如何实现搜索引擎中的拼写纠错功能?

    本节课程思维导图: 利用 Trie 树,可以实现搜索引擎的提示功能,这样可以节省用户输入搜索的时间。实际上,搜索引擎在用户体验方面的优化还有很多,比如你可能经常会用的拼写纠错功能。 当你在搜索框中,一不小心输错单词时,搜索引擎会非常智能地检

    2024年02月03日
    浏览(43)
  • 九大经典算法

    1. 冒泡排序(Bubble Sort) 两个数比较大小,通过两两交换,像水中的泡泡一样,较大的数下沉,较小的数冒起来。 算法描述 : 1.比较相邻的元素。如果第一个比第二个大,就交换它们两个; 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的

    2023年04月09日
    浏览(43)
  • 排序算法(九大)- C++实现

    目录 基数排序 快速排序  Hoare版本(单趟) 快速排序优化 三数取中  小区间优化 挖坑法(单趟) 前后指针法(单趟) 非递归实现(快排) 归并排序 非递归实现(归并) 计数排序 冒泡排序 插入排序 希尔排序(缩小增量排序) 选择排序(优化版本) 堆排序 实现原理:

    2024年02月13日
    浏览(32)
  • 九大排序算法(c语言版)

    过年这几天晚上在家码代码学了一点。 代码中排序的数字均由rand()函数随机生成。 一个经典的不能再经典的排序算法。 优化前: 两个for循环搞定。 优化后: 加入了一个flag变量,用于减少多余的比较和交换,大大提高代码运行效率,减少循环次数。 冒泡增强版,就是拿后

    2024年03月12日
    浏览(26)
  • 读十堂极简人工智能课笔记03_遗传算法与进化

    1.1.3.1. 创造一批能游泳、走路、跳跃,甚至互相竞争的虚拟动物震惊了整个科学界 1.1.3.2. 它们的人工大脑却是个极其复杂的网络,信息经由传感器的输入,经过大量的数学函数计算和操作,才能产生那些看起来很聪明的动作和表现 1.1.4.1. 他并没有设计这些动物 1.1.4.2. 他并

    2024年02月19日
    浏览(34)
  • 读天才与算法:人脑与AI的数学思维笔记03_AlphaGo

    2.6.2.1. 原本平静的丛林之中激起的一丝混乱,极有可能预示着另一种动物的潜入 2.6.2.2. 这类敏感信息备受动物们的关注,因为它关系到自己会成为猎物还是猎食者,这就是大自然的生存法则 2.6.2.3. 人类的大脑非常擅长识别模式并预测它们的发展方向,同时做出适当的反应

    2024年04月22日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包