24|纠错码:对待错误的正确态度是什么?
24|纠错码:对待错误的正确态度是什么?
你好,欢迎来到我的《信息论40讲》。
我们前面讲到,信息在传输的过程中难免发生错误。比如说你的电脑正在通过网络线传输信息,有一个地方接触不良,产生了一个小的脉冲电压,0被传输成了1。4和10说不清。在英语里,14,fourteen和40,forty在电话里也是经常混淆的。
机器和我们人一样,也会出错,只不过它的出错率会低一点。但是由于机器处理和传输数据的总量非常大,绝对的出错数量还是非常多的。
因此, 对于必然发生的错误我们该如何面对呢? 这是我这一讲想告诉你的方法论。
如果我们采用正向思维,就会把工作做得更细致一点,试图不出现错误来解决问题。比如多检查检查线路,通信线路屏蔽做得好一点;在通信时说话慢一点,发音标准一点。
这样的努力不能说没有用,但一来使得成本剧增,二来依然有一些问题无法解决,因为出错是人的天性,而干扰无处不在。对大部分人来讲,就是花上三倍的时间,也未必能够做到绝对准确的要求,总不能不让那些人通信吧。
此外,很多随机事件我们并不知道它们什么时候发生,像太阳的活动其实是极不稳定的,太阳黑子略微的变化,就能够干扰我们的无线通信。我们能够管得了飞机起降期间不用手机,但是管不了太阳。
因此,从根本上解决传输过程中信息错误的办法,就是在信息传输编码时, 考虑到错误必然存在,然后通过巧妙的编码解决那些问题。 这就是在信息传输中的逆向思维。具体到通信中,就是 通过巧妙的信道编码保证有了错误能够自动纠错。
信息纠错的前提是要有信息冗余。如果一条信息已经被压缩得一点冗余都没有了,它容错的能力就是零,更不要谈纠错的可能性了。
比如说别人给你一个网址,不小心写错了一个字母,你拿到后发现打不开,然后再仔细看一遍网址,根据单词的意思大概猜一猜可能出的错误,可能就打开了网页。但是,如果给你一个没什么意义的短网址,比如xAy32Dz,错一个字符就一点办法都没有了。
一个最简单的信息纠错的方式就是重复传输的信息。也就是我们说的“重要的事情说三遍”。
比如我们要传一个八位的二进制数10011101,中间任何一位都可能出错。假如每一位正确传输的可能性是99%,出错的可能性是1%。这1%的出错率看似很小,但是累计起来就不小,对于这个二进制数,全部八位传输都没有错的概率只剩下92.2%了,也就是说出错的可能性是7.8%。
如果你用移动支付付款,每一百次有7.8次出错,还是很可怕的。那么怎么办?最简单的方法就是传三遍,这样一来,你传输的可靠性就从92.2%,上升到99.99%。当然,其代价是使用了三倍的信息冗余,显然编码的效率不是很高。
那么能否提高编码的效率的同时,提高信息传输的准确率呢? 答案是肯定的。我们先从一个古老的故事,看看如何检验信息传输正确与否。
古代犹太人一直是靠手抄《圣经》将它代代相传的,今天你去以色列,依然能买到很多手抄的《圣经》。抄写的过程是一个信息传播的过程,因此错误便在所难免。
虽然说犹太人做事很认真,而且在抄写《圣经》时,要虔诚并且打起十二分精神,尤其是每写到“上帝”(God和Lord)这个词时要去洗手祈祷,但是抄写错误还是难以避免。
于是犹太人发明了一种有效发现抄写错误的方法,他们把每一个希伯来字母对应于一个数字,这样每行文字加起来便得到一个特殊的数字,同样,对于每一列也是这样处理。
当犹太学者抄完一页《圣经》时,他们需要把每行每列的文字加起来,看看新的校验码是否和原文的相同。如果中间有一个词抄错了,比如在第五行、第六个词,那么第五行和第六列的校验码就和原文中的不同了,于是就可以定位错误发生的位置,然后进行修改。
今天计算机里最简单的信息校验使用的就是上述原理。我们还是以上面的二进制10011101为例来说明。
在这个二进制序列中,任何一个0或者1发生了传输错误,我们都无法判断是否有错误发生。但是,如果我们将它从8位二进制扩展到9位,第9位就是所谓的奇偶校验位,记录这个八进制到底是奇数个1还是偶数个1。如果在传输时,错了一位,1的数量就对不上了,这样我们就知道出了传输的错误。这就是奇偶校验的原理。
在上述方法中,如果错了两位,那就检验不出来了,但是这一种情况不多见。90%几的传输错误是能够发现的,不能发现的错误不到10%。
接下来我们从信息冗余的角度对它作一个分析,它其实多用了1个比特的信息,也就是1/8的信息冗余,这样信息编码的长度就略有增加。
当然,这种方法只能发现错误,不能纠正错误,因为错误可能出现在任何一位上。 那么我们能否通过巧妙的编码纠正错误呢? 答案也是肯定的。
我们需要想个办法,如果发现传输出错时,能够确定出错的位置,那么我们就可以纠正错误了。我们回顾一下古代犹太人在抄书时定位错误的方法,他们采用横竖两个维度交叉实现。
1940年,贝尔实验室的科学家海明(Hamming,也被翻译成汉明)设计了一种原理和上述方法类似的纠错的编码方式。
他将一个很多位的二进制数投射到几个维度,然后在每一个维度进行奇偶校验,如果有错,就可以定位出错位置。这种编码后来被命名为海明码,它在今天计算机中被广泛使用。
海明码要增加编码的冗余信息,如果纠正一个8位2进制中的1位错误,就需要增加5个校验位,这就是成本。这比简单将信息传输三遍已经有效得多了。事实上,海明码的纠错效率接近了信息论给出的最优值。
今天依然有一些科学家在研究纠错编码,其数学基础主要是数论和近世代数。从这里面我们可以看出数学和信息科学之间的关系。
如果我们再换一个角度来看信息纠错的问题,合理的编码如果太密集,就不容易纠错,如果让合理的编码距离拉大,就容易发现错误。
我们不妨看这样一个例子。假如0—999这1000个数字,每一个都被认为是正确编码,正确编码之间的间隔只有1,比如87和86是正确编码,它们的差距就是1。这样稍微错一点就出错了。
如果我们要求正确的编码必须是个、十、百三位数都一样,那么0—999只有10个正确的编码,即000、111,一直到999。这时正确编码之间的距离至少为111,距离很大,就不容易出错。
如果我们不断增加合法编码之间的距离,我们的传输就变得越来越可靠,但是这样就要浪费很多信息。因此,有效的纠错编码实际上是在平衡编码的效率和纠错的可靠性。在这方面,最极端的情况可能是我们自身DNA的编码了。
在上个世纪80年代之前,研究基因遗传的科学家和研究信息的科学家鲜有交集,因此前者发现DNA中很多碱基似乎毫无用处,因为它们根本不和任何功能对应。
今天你依然能读到这样的观点,主要是采用了几十年前的说法。但是后来随着人们对DNA的进一步了解,认识到两件事:
-
一些原本不知道对应什么功能的碱基,现在找到了它们的功能。
-
那些多余的DNA并非真的没有用,而是对于防止基因之间在复制的时候因为一个错误而引起一连串的错误很有帮助,你可以认为它们是基因之间的防火墙。甚至有人认为它们可能起到了纠错的功能。事实上,人的基因也是通过信息冗余起到了容错和纠错的效果。
要点总结
-
不要高估自己的仔细,以及自己通过努力做到最仔细后,能够达到的效果。不确定性是我们这个世界自然的属性。因此,在解决任何问题之前,都要考虑到世界的不完美和不确定性。这就是所谓的预则立,不预则废。
-
在信息的传输过程中总是不免要发生错误的,要想避免出错,就要增加一点信息冗余。增加的信息冗余越多,检验甚至纠正错误的能力就越强。当然,并非简单增加冗余就能查错纠错,人的水平的高低,就在于是否有效利用资源解决了更多的问题。上帝给每一个人一天24小时,谁也不会多,谁也不会少,只是有些人利用得比其他人更好罢了。
-
有一些自然存在的,看似没用的信息,先不要下结论说它们没有用,在了解清楚之后,你可能会惊叹于大自然的美妙之处。
思考题: 如何利用纠错的原理增强我们交流的准确性?
预告: 第二模块的这几讲,我们都是在围绕信息传输中可能遇到的麻烦,比如噪音大、信道窄、传输错误等等来教你破解之道的,下一讲,我们再说一个传输中可能遇到的难题,就是加密。我们下一讲再见。


热门留言
Steve:#金勇笔记# #day24# #总结#
本讲的核心在于如何对待必然存在的错误--从发现错误,再到纠正错误。
纠错的代价是要有信息冗余。例如, 重复就是最简单的方式。 当然,为了提高校验的效率还可以专门设一些“校验位”, 文中提到的Hamming Code是这样的经典代表。 在它的维基百科页面中, 有一个检验表, 可以看出检验位与数据位的分布规律,
我们之前讲到信息冗余度的概念,但在这讲中我学习到,有的时候,那些看上去没什么作用的信息,反而提高了信息的容错能力。
分享
今天的内容还让我联想到一个我们平时说话时可能会有一个习惯:“呃.... \这个....\那个....然后就是...." 经常说这些话的人,我觉得虽然增加了信息的冗余,不过他们获取更充分的时间组织接下来要说的话,在一定程度上往往就纠正因为说话语速太快而犯错问题。
如果你不希望在某些场合让人看到这样的不必要停滞,那么就应该提前打好草稿,将这些词要么删除、要么换成承上启下的连接词(短句):
"刚刚的概念,展开来说...." "换句话来解释, 其实呢” “我打个比方”
这是一些口语化的词,在我们app一些文字中,我发现是容易出现的,我想这是为了照顾我们平时也许在开车、锻炼,为了让大家接收起来更方便,而做的人性化设置。
延伸阅读
平时我们在下载一些较大的软件时,会出现一个叫做“md5sum"的信息, 它实际上就是一种文件的数字指纹(digital fingerprint), 是用来验证接收者手上文件的完整性的最常用工作之一。 我们在下载的过程中有一定几率会丢失信息,导致这个文件的MD5哈希值跟着改变。 所以信息提供方给出了这个文件的正确md5sum值用来验证。 这个作用就像是这一讲中,吴军老师提供的抄写圣经的故事。
在这讲之前我们都围绕的是明文信息, 也就是传递与接收方都没有担心过安全性的问题, 下一讲就要过渡到传输时的安全领域了。 这里也做个外延:, 卓克老师的密码学课程会对密码这个话题做更系统的介绍,推荐对密码感兴趣的伙伴们加入学习。
金勇,2019年6月19 两点
盲人摸相:老师文章中八位二进制传输的例子,应该也有同学好奇,传三遍,可靠性怎么一下从92.2%直接上升到99.99%,那么我推导一下吴军老师的计算过程,供大家交流。
八位二进制数,每一位传输正确的可能性是99%,即,0.99(换算成小数,便于计算);出错的可能性是1%,即,0.01。
全部八位数没有传错的意思就是,从第一位一直到第八位,每一位传输都正确,即,0.99^8=0.92274(四舍五入);那么出错的概率就是1-0.92274=0.07726。
传三遍的正确率,就是传三遍,只要有一遍正确就行。我们计算的时候可以先计算三遍都传输错误的概率是多少,即,0.07726^3=0.0004611;那么只要有一遍传输正确的概率就是,1-0.0004611=0.99954,即99.95%。(老师文中是99.99%,小数点后四位数字(9或5)可忽略不计)
吴军老师要建一座城,我力所能及帮老师搬好一块砖,哈哈。
巴吉纳:各国军队总参谋部的参谋们,都掌握一项技能——作战标图。简单说,是将战场情况和作战行动,以规定格式标绘在图纸上。作战标图制度已有上百年历史,期间没有发生质的飞跃。今天,军用图像、语音通信如此发达,作战标图是不是有些鸡肋呢?从纠错码角度看,我们就能发现其价值所在。
用一个耳熟能详的例子说明:1930年中原大战,冯玉祥、阎锡山的“反蒋联盟”发动对蒋攻击。计划中,军队在河南沁阳集结,但由于参谋拟定计划时,误把“沁阳”写成“泌阳”。不巧的是,河南正好有个叫“泌阳”的地方,距离沁阳400多公里。由于部队调动失误,导致战争失败。
但是,如果冯、阎的参谋用“作战标图”的方式,明确了作战决心图,还会发生如此重大失误吗?答案是否定的,因为图像直观的标绘,能起到非常有效的纠错作用。虽然花十多分钟标图感觉麻烦,但增加的准确性是无可比拟的。
开不得:未谋胜,先虑败,也就是提前给予失败空间,这样才会进步。虽然我们防止错误有许多“笨办法”,比如多说几遍,说慢一点,说清楚一点,但这只是机械的重复,就好比考试检查自己的试卷,很难检查出自己的错误。其中,犹太人抄写圣经,用位置上的编码来判断对错是一个好思路,他充分正视了人很难通过重复检查出自己的错误,相信自己,不如相信一开始的规则。我一般用笔记本写我思考解决问题思路,我会用A4大小笔记本,字写大一点,一组和另一组内容之间的空白留大一点,很多人说我浪费笔记本,其实我是给我来回纠结时纠正错误留有空间涂画。
最后老师留思考题,如何利用纠错的原理增强我们交流的准确性?
我一般是喜欢用自己话重复一遍对方的意思,看看对方同意不同意?最好能变成提问题的方式,因为提问题就会有冗余,特别是开放式的问题,这样我们双方都能有思考和纠正自己观点的空间。
Vincere_肖涵哲:信息论 | 纠错-24
海明码的核心思路是:
- 发送端将有效信息按规律分组,以异或运算进行校验,得出具体的校验码。
- 接收端以相同方法检查校验结果,观察出错组或多个出错组的共同校验位,得出具体比特位。
这个思想我运用在了交流中的意见提出方面,有三个关键维度:信息编码,信息传递和信息反馈。梳理观点后,遂分为三大板块,五步实施。
【交流】 信息编码是自我认知的辨证和增强,是意见或观点本身的自我衡量和质量升级:
1.人的非理性认知是错误的本源。我们很容易高估和过度依赖自己对一件事的掌握程度。此时,应用5H原则“What, Where, Who, How, Why”确认自己对一件事的了解程度。
2.区分“事实”和“意见”两个维度:事实有充足数据支持和证明,增加意见本身说服力;意见则需要应用辩证法,提前列出赞成和反对的意见清单,根据事实依据衡量观点本身。区分后进行探讨,才能深入思考事件本身。
信息的传递是意见的真正输出,依据理性稳固,根据感性调试的阶段:
1.建立自我意见后,展现事实和逻辑的“思维地图”,在对方明确你的观点基础后,直接清晰地表达意见。此时,切记不要将情绪化的攻击性,评价性语言视为直接。
最后,信息反馈的验证,保证了长期关系的稳定和你提出意见所付出“风险”的回报:
- 验证对方的感受,在察言观色中提出意见的讨论之后,特地向对方询问具体感受和对自己说话方式的评价,把“提问“和”评价“的权利交予对方,会让他重新拥有控制和主权感,保证关系的长期发展。
2.永远铭记表达和交换意见,这份信息流的交换正是宝贵的学习机会。当对方否定意见时,可以把他的否决视为对观点提出的问题,作为自我辨证的补充:为什么不可以,应该怎么做?
启航:吴军老师好: 学习了今天纠错码的课程后,结合老师课后提出的问题,我想到了以下相互关联的三个问题: 一是如何看待出错? 二是对待错误的态度? 三是如何避免错误? 先说第一个问题。“墨菲定律”讲如果事情有变坏的可能,不管这种可能性有多小,它总会发生。套用到本节课程所讲的内容,就是由于事情运转的机理,有意无意的干扰和人的因素,发生错误是必然的和不可抗拒的,区别无非是多一点和少一点和对结果影响的不同。不会因为执行人和重视程度的不同有根本性的改变。 换句话说就是任何人都不能在犯错上过于自负! 再说第二个问题。对待错误首先要正视,要以积极的心态,主动的认识错误,分析错误,降低错误造成的影响,并努力避免错误。 这就引出了第三个问题,如何避免错误?这里我们用航空语音通信中的一些经验和做法的案例加以说明。 一是避免和纠正发音含糊不清的用语,增加重读和仄声。在航空用语中数字的编码有了特殊的改变,如将“1”读成“幺”,“2”读成“两”, “7”读成“拐”,“9”读成“苟”,“0”读成“洞”等等。 二是使用规范的航空用语。在教学、训练、实践中整个航空系统强制性使用简洁的规范用语,比如“XXX,高度70(拐洞),航向15(幺五)”、“请求返航”等。 三是强调复述和反馈。在下达和接受指令时,接受方要对指令进行复述,并给予肯定的回复。如A:“XXX,保持高度待命”,B:“XXX明白,保持高度待命”。 总结一下航空语音通信中利用纠错的原理增强交流的准确性的原理有: 1.增加编码的辩识度; 2.使用统一规范的协议; 3.增加交流双方的互信息; 4.增加信息的冗余度; 5.接收方利用反馈进行验证。 以上是在重要工作中如何避免信息传输错误的一点心得,和结合本节课程学习的体会,感谢老师教诲。 祝安康! 启航 2019年6月19日晨
马克李:准确性的确保必须依靠冗余。如何提高冗余又不让人厌烦是需要技巧的。
见面交流冗余度是最高的,表情,动作都是冗余与加强。
重要事情完全重复说三遍是偶尔的金句可以用,一般套路是观点,案例,总结,这样的说三遍。
说到冗余,8bit信息 海明码 是5位。如果确定是8位中有1位错,找起来起码需要3bit 信息,再加一位确认错误位 是4位 。
对上司,零秒工作有一个成果清单给上司 当校对目的用。
对下属,布置5遍。
对合作伙伴,看情况而定,增加见面频率是常用。
张平 Francis:近日在读比尔·盖茨力荐的《事实》,我发现人本能的偏见和本讲所说的信息传输中的错误非常相似。 1,信息传输中的错误无法完全避免,而人本能的偏见也是无法根除的。 《事实》中所说的对万物一分为二的二元对立,极端归纳导致的以偏盖全,自恋心理导致的归咎于人等等,无不是我们人类千万年来演化过程中不可消除的遗留痕迹。 2,随着信息量的增加,错误量也会水涨船高,看似很低的错误比例,在巨量的信息传输过程中,破坏力也会极大。 同样,人的偏见,如果不加纠偏,也会无限漫延,像病毒一样侵蚀整个社会。 3,面对错误,最有效的方法不是事后纠正,而是事前预置纠错机制,而且最好是自我纠错。 对于信息传输中的错误,要依靠增加纠错码,而对于人的偏见,则要学会自我反思,尽管那会增加很多冗余的工作量,但那是值得也必须的。 4,纠错的维度越多,就能够越准确地将错误 找出来并予以纠正。 要获得客观事实,也得依靠不同领域不同维度的交叉验证,去证实一段数据或一则信息的可信度,避免拿着锤子就只能看到钉子的现象发生,当然仍要考虑效率和准确度之间的平衡。 你要追求绝对的确定性,就必将招至绝对的错误,陷入真正的不确定性中。 只有学会谦卑,容许不确定性的存在,才能找到应对错误的方法,从而让自己不断地接近确定性。
冯琨:今天的思考题包括两个层次:检出错误和纠正错误。 1、检出错误。 我们的信息沟通总有大量的预设信息不用传输,比如今年参加高考或中考的同学之间问“你考了多少分”,就有“今年中考或高考”的预设信息,这些预设信息也可以在一定程度上检查错误的发生,比如回答500分和940分,我们就容易知道后者的数据是出错的,因为中考、高考成绩满分也没有九百多的情况。
日常生活中对于极重要的信息总是安排多次传输或多维度检查,比如在设置密码时,很多情况下要求重新输入;再比如很多表格填写身份证号码时,同时也要求填写户籍地和出生日期,而身份证的18位编码中就已经包括了户籍地、出生日期和性别信息,两者矛盾时,就可以认为其中一个填写有误。
2、纠正错误。 纠正错误往往有两个考虑方式,即冗余信息和增加带宽消耗,比如要求重复传输或增加编码之间的间距。 比如孩子在学校和同学说话语速快,但是和老一辈人说话就需要慢慢讲才能被听懂,后者所需要的带宽更大。
沃波海:这一讲老师带我们思考了一个人生大难题: 对于必然会发生的错误,我们该怎么办?
1.信息要有冗余。 这让我想到了吃亏是福。把眼前的吃亏当做冗余,将当下的利益转化为未来的保险。
2.多尝试当下看来无用的事情。 就像乔布斯说的,当下做的那些看似无用的事情,在未来某个时刻,会像珍珠似的,一颗颗串联在一起。
3.学会对世界的不确定性、不完美,习以为常。 将世界的不确定作为生活的一个常量维度来看待。永远留足一部分时间、精力、资源来应对这份不确定。
lambdacpp:一些日常交流中信息冗余的例子: 1. 创建密码的时候通常要求输入两遍。 2. 写通知时,在写明日期的同时往往还标准星期几。 3. 重要的事说三遍。 4. 交流中对重要或易错内容的复述和确认。比如,别人告知电话号码,你这样确认“您的电话号码是xxxxxx,对吧?”
李泽蘋:『五倍弹药』
记得老师曾在《态度》一书中,讲到过: 一个将军,在属下告诉他需要多少弹药能赢得战斗时,总是以五倍的量给予武装配备。(只是梗概)
无独有偶,此前看过一条短信,大意为: 一个航天工程师请朋友吃饭,他编辑了一条"约会"短信。一般人通知某某街,某某饭店,也就完了。可曾想,这位工程师精确到了方位度数,前行多少多少步,预计用时多少多少秒......一切可量化的都写得清清楚楚。 当时,长辈给我看这个的用意是告诉我『规矩』的重要性。
回到今日所学。信息传递过程中,精确是第一位,可信息本身的容错力也不容忽视,而制造冗余就成了必不可少的途径。 因而,多想想出错率,反而容易把事情安排妥当。
佛祖门徒:纠错原理对我的三点启发: 第一、对错误的发生有客观的认识。无论在信息组织和传递过程中如何仔细,都无法做到结果尽在掌控,对错误发生的概率有客观的认识,才能在过程中付出必要的成本来设计审核和纠正的机制。 第二、设立有效机制才能反脆弱。由于人为或者意外都可能产生错误,系统必须付出必要的成本来建立有效纠错的机制。软件开发需要代码审核、系统测试人员;工厂需要质检部门……都是为了及时发现并纠正错误。但是设立机制要在效率和成本之间选择一个最佳平衡点。 第三、要抓住错误发生的本质减少错误。对错误的发生要及时总结,尤其是对发生错误较多的环节或部分,通过找到导致错误易发生的根源所在。《丰田模式》中有著名的五问法。书中有一个例子,工厂车间地上漏了一大片油。常规的处理方式就是先清理地上的油,最多再检查一下,机器哪个部位漏油,换掉有问题的零件就好了。但是按照丰田的思路,会引导员工继续追问:为什么地上会有油?因为机器漏油了。为什么机器会漏油?因为一个零件老化,磨损严重,导致漏油。为什么零件会磨损严重?因为质量不好。为什么要用质量不好的零件?因为采购成本低。为什么要控制采购成本?因为节省短期成本,是采购部门的绩效考核标准。 从机器零件到采购成本再到绩效考核,层次思维的五问法让我们真正深入到现象的本质,找到真正根源所在。
S 教官:主要有以下几种方法增强交流的准确性: (1)增加信息冗余度。比如说话的时候多用:“比如...”,“也就是说...”,“类似...”等等。 (2)利用信息的矢量数字化。就像古代犹太人在抄书时采用横竖两个维度交叉锁定错误。多用这种将信息坐标化的方式表述,比如进门左手边鞋柜由下往上第二格的绿色鞋子;再比如人口普查中把人分为80后、90后、00后。 (3)使用信息的正交性。从几个不同的角度印证自己的观点,比如专家言论+数据调查+人性因素+案例;或者像得到这样:语音+文字说明+配图的方式加深理解。 (4)增加互信息。发出信息的一方,一定要确认接收信息的一方是否“get”到意思了,否则宁愿放慢速度,降低传输率,也要确保对方听懂了。 (5)一定要拒绝“反馈黑洞”。
金融王子:如何利用纠错的原理增强我们交流的准确性?
信息冗余就好比重要的事情说三遍,老板给下属安排任务先说三遍。 老板:好了听明白没有 下属:听明白了 老板:你可以走了 下属:刚刚转身走 老板:回来把我刚刚说的事情你在一字不漏的重复说一遍 好记性,不如烂笔头。 重要的事情都要事先记在笔记本,电脑,手机上面设置时间提醒功能,有助理的就让助理随时提醒,有时候事情忙起来什么事情都会忘记的。 特别是谈重要合同的时候,一定要多找几个精明能干专家级别的人物先做好功课再陪同一起谈判,随时补充遗漏与对方讨价还价,以免造成经济与法律上的重大失误。
Dx:下载linux,windows安装包的时候,官方都会给出md5,sha256等hash(散列)校验码。 这就是将几GB的数据,对应成一个字符串,方便人们确认下载的安装包是否有错误。 (这是一种不可逆的编码,也无法纠错)
采用DOW共识的区块链,区块内的信息,区块与区块间的链接关系,以及挖坑与挖坑难度判断,都利用到了hash。 这背后是用尽量少的信息完成大范围节点间数据的确认和挖坑成果的验证和确认。
生活中的纠错 验证: 一个人声称自己严格自律,但是一个大胖子,那这点至少存疑。 一个人的信誉,除了你和他日常接触的感受,他的个人征信会是另一个维度的验证。 纠错: 间接经验学习,是低成本的纠错方式,这能让我们不断修正自己的决策模型,避免犯错造成的损失。 直接经验的举一反三。大部分人能做到不犯两次同样的错误,但可能会在不同领域犯两次类似的错误。这种情况应尽量避免。
TryTs:吴军老师今天讲述的逆向思维解决问题特别有启发。世界上很多事情都是概率上能够成功,不是100%能够成功,如果把事情都放在100%都成功上,不光做这件事的成本比较大,可能大过做事情的收益,还有选择的机会太少。做事的时候不要太苛求完美,很多时候与其把精力花在准备做事的时候,不如把把精力花在找到应对做事情可能出现错误,风险上。 之前吴军老师在课曾经提到过二战期间德国和盟军制造炮弹的例子,德国采用“机械思维”的方式,期望提高每个零部件的精度来提升炮弹的精度,但是中间过程(温度)的变化都会影响炮弹的航线,所以最后不光成本高,而且精度差。而盟军采用的是“控制论”的思想,在设计炮弹的时候,让它在航行的时候能够根据环境动态的调整,最后精度大大提高。
识己:跟何帆老师读博弈论的时候,他给我们介绍了一个叫,拉波波特谈判法的交流方法,就是类似于我们前面学香农第二定律时信息确认。虽然啰嗦了,但是准确性提高了,达到了交流的目的。 在这个互相合作的社会里,规划时间的时候,我们必须增加一定的冗余。这是我前两天监考时的感受。 具体情况是,下午3点考试,考试前要去任课老师那里拿试卷,我估算好了自己的时间,2:30出发,35分拿到试卷,到考场45到考场。结果好多监考员都没有去拿试卷,然后任课老师就让去了的帮忙联系还没到的,结果他们都到考场了。只好我们帮着抱过去,有些人还联系不上,只能挨个送到考场,最后我自己到考场都55了,赶紧组织考生就坐准备开始考试。 这就是我只顾着自己的时间,没有考虑别人,没有安排好冗余。
表元素:1.二代身份证号码从原15位升为18位,除增加年份前两位数字外,增加了第18位的校验码。因为只需要判断信息录入是否有误,一位校验码是足够的。 2.无论是一代或二代身份证,身份证号信息都包含了不少个人信息,在全国各地区信息水平很不平均的条件下,此为无奈之举。如果未来升级三代身份证或电子身份证,个人认为可以调整身份证号的编码规则,身份证号仅为索引号,不同机构根据不同授权,读取不同级别信息。过渡时期对二代身份证进行转码。有了更通用的编码后,各机构更新同步信息更方便。 3.自然的奇妙由背后大量和长时间的淘汰支撑,人类不能通过某一次的智力闪现而同样地构建美妙的设计。人类总结规范,是减少时间和资源耗用的解决方案。
罗杰.菲🉐樂:这里讲一点稍微专业一些的内容,文中的不少留言提到了MD5,这属于哈希原理的校验码。这里提到一种新的编码 Erasure Code (EC纠删码原理),在云存储中应用非常广泛。
Erasure Code(EC),即纠删码,是一种前向错误纠正技术(Forward Error Correction,FEC,说明见后附录),主要应用在网络传输中避免包的丢失, 存储系统利用它来提高 存储 可靠性。相比多副本复制而言, 纠删码能够以更小的数据冗余度获得更高数据可靠性, 但编码方式较复杂,需要大量计算 。纠删码只能容忍数据丢失,无法容忍数据篡改,纠删码正是得名与此。
EC的定义:Erasure Code是一种编码技术,它可以将n份原始数据,增加m份数据,并能通过n+m份中的任意n份数据,还原为原始数据。即如果有任意小于等于m份的数据失效,仍然能通过剩下的数据还原出来。
目前,纠删码技术在分布式存储 系统中的应用主要有三类,阵列纠删码(Array Code: RAID5、RAID6等)、RS(Reed-Solomon)里德-所罗门类纠删码和LDPC(LowDensity Parity Check Code)低密度奇偶校验纠删码。
有兴趣的朋友可以打开原文链接 https://blog.csdn.net/shelldon/article/details/54144730
24|纠错码:对待错误的正确态度是什么?
https://note.haoshenqi.top:/?p=category-xin-xi-lun-40-jiang-25
评论