打字猴:1.701025963e+09
1701025963 那么,香农是如何发明这些优质编码的呢?答案是,这些编码并不是他发明的。我们在遇到像海明码这样的复杂结构时,往往会下意识地认为错误校正码真的非常特别,在设计时它们肯定会被反复修改,直到每对代码字都小心翼翼地保持彼此间的距离,而且能确保其他对代码字不得其门而入。香农的聪明才智表现在,他看出这是一个彻头彻尾的错误认识。错误校正码根本没有任何特别之处,香农成功地证明(一旦知道需要证明的内容,证明过程本身并不是特别难)几乎所有的代码字集都有错误校正的功能。换言之,没有经过任何设计的完全随机的编码也极有可能是一种错误校正码。
1701025964
1701025965 毫不夸张地说,这至少是一个令人震惊的新发现。假设我们接受了一个建造气垫船的任务,难道我们的第一选择是把一堆引擎零部件和橡皮管随意地扔到地上,然后指望它们能自动组装成漂浮在水面上的气垫船吗?
1701025966
1701025967 1986年,时隔40年之后,海明仍然对香农的证明过程敬佩不已,他说:
1701025968
1701025969 香农最杰出的特点之一就是他的勇气。想想他提出的主要定理,他的勇气便可见一斑。他希望发明一种编码,因为无从下手,他就写了一个随机编码。这时,他想到了一个问题:“普通的随机编码有什么作用?”他认为普通编码具有完美的随机性,因此肯定具有较高的使用价值。如果没有无与伦比的勇气,怎么会有这么大胆的想法呢?勇气是伟大科学家必备的特质,这些科学家在极度困难的情况下也会昂首阔步向前进,并不断地思考。
1701025970
1701025971 如果随机编码也有可能是错误校正码,那么海明码还有什么存在的意义呢?既然香农也认为随机编码有可能具有矫正错误的功能,那么我们为什么不随意选择代码字呢?这是因为这个做法会导致一个问题:编码光在理论上具有矫正错误的功能是不够的,关键是它在实践中是否能够矫正错误。如果香农编码的代码块的位数为50,代码块的总数就是50个0、1构成的不同代码块的总数,即250个,这个数字略大于1 000兆。卫星接收到的信号应该是(或者至少接近于)这些代码块中的一个,但是代码块一共有1 000兆个,它接收到的到底是哪一个代码块呢?如果我们必须从这1 000兆个代码块中逐一甄别,就太麻烦了,因为这又是一个组合爆炸问题。因此,我们必须再次采取一种平衡的策略。像海明码这种条理清晰的编码往往更易于解码,但是事实证明,这些非常特别的编码,其效率通常比不上香农研究的那些随机编码。时至今日,几十年过去了,数学家一直在结构性与随机性这两个概念之间进退维谷,在绞尽脑汁地发明各种编码时,既希望其有足够的随机性,可以快速处理数据,又希望其有充分的结构性,以便降低解码的难度。
1701025972
1701025973 海明码在特兰西瓦尼亚彩票游戏中可以大显身手,但是在“Cash WinFall”彩票游戏中却一无是处。这是因为特兰西瓦尼亚彩票只有7个数字,而马萨诸塞州的彩票却有46个数字,后者需要更强大的编码。我能找到的最适合“Cash WinFall”彩票的编码就是莱斯特大学的丹尼斯顿(Denniston)于1976年发明的,这套编码真是太完美了。
1701025974
1701025975 丹尼斯顿列出了一个号码组合清单,其中包含285 384个号码组合,都是由48个备选数字中的6个构成的。排在清单前几位的号码组合为:
1701025976
1701025977
1701025978
1701025979
1701025980 ……
1701025981
1701025982 前两组号码有4个数字相同,即2、3、4和48。但是,我们在这285 384组号码中不可能找到有5个数字相同的两组号码,这正是丹尼斯顿清单的神奇之处。在前文中,我们把法诺平面转变成编码,同样,我们也可以把丹尼斯顿清单转变成编码:把每组彩票号码转换成由0和1构成的48位数的代码块,在与彩票号码中数字相对应的位置填上0,其他位置填上1。因此,上面的第一组号码就会变成下面这个代码块:
1701025983
1701025984 000011101111111111111111111111111111111111111110
1701025985
1701025986 由于每两组号码的6个数字中不可能有5个相同,因此,这套编码与海明码一样,每两个代码块的间距都会大于或等于4。这个结论,请大家自行验证。
1701025987
1701025988 也就是说,任意5个数字的组合在丹尼斯顿的彩票号码清单中至多出现一次。它的好处不仅限于此,事实上,任意5个数字的组合在丹尼斯顿的彩票号码清单中都会出现但只有一次。
1701025989
1701025990 由此可以想象,丹尼斯顿列举这个清单时必须非常小心。丹尼斯顿在他的论文中给出了一个用“算法语言”(ALGOL)编写的计算机程序,可以验证他的清单的确具有他所说的神奇特点。在20世纪70年代,这是非常高调的姿态。此外,他还强调,在人机合作方面,计算机的作用应严格从属于他本人所发挥的作用:“虽然我建议大家可以使用计算机验证我的研究结果,但是我要明确地告诉大家,在得出这些结果的过程中我没有使用计算机。”
1701025991
1701025992 “Cash WinFall”彩票游戏有46个数字,要使用丹尼斯顿系统的话,我们需要稍稍破坏后者的完美对称性,剔除其中包含47或者48的所有号码组合。这样,剩下的号码组合仍然有217 833个。如果我们从藏在床底下的钱中拿出435 666美元买这些号码组合,结果会怎样呢?
1701025993
1701025994 彩票中心会开出6个数字,比如4、7、10、11、34、46。如果这个号码组合不可思议地与你选的某组号码完全匹配,你就中了大奖。不过,即使没中大奖,你仍然有可能猜中6个数字中的5个,赢得让你满意的奖金。你买的彩票中有没有一组含有4、7、10、11、34?丹尼斯顿列举的那些号码组合中的确有一组这样的号码,除非这组号码是4、7、10、11、34、47或者4、7、10、11、34、48,导致你没法选用,否则,你绝不会与奖金失之交臂。
1701025995
1701025996 如果开出的是另外5个号码,比如4、7、10、11、46,结果会怎么样呢?上一次你的运气不好,因为丹尼斯顿清单中有一组号码是4、7、10、11、34、47,因此,4、7、10、11、46、47这组号码就不可能出现在丹尼斯顿清单上,否则清单上就会有两组号码有5个数字相同。换句话说,如果47这个讨厌的数字让我们错失了一次获得“6中5”奖金的机会,那么它只有这一次捣乱的机会,数字48的情况与之相同。因此,一共有6个号码组合可能会赢得“6中5”奖项:
1701025997
1701025998
1701025999
1701026000
1701026001 你买的彩票肯定至少包含其中4组号码。因此,如果我们购买了217 833组丹尼斯顿号码,我们就会有:
1701026002
1701026003 2%的概率中大奖;
1701026004
1701026005 72%的概率赢得6个“6中5”奖项;
1701026006
1701026007 24%的概率赢得5个“6中5”奖项;
1701026008
1701026009 2%的概率赢得4个“6中5”奖项。
1701026010
1701026011 我们把这种情况与塞尔比通过快速选号器随机选号的结果进行比较。塞尔比的选号策略有一个比较小的概率会被“6中5”奖项完全拒之门外,这个概率为0.3%。更糟糕的是,只中一个该奖项的概率为2%,中两个的概率为6%,中三个的概率为11%,中4个的概率为15%。因此,丹尼斯顿策略可以保证的收益在这里被风险所取代。当然,风险也有好的一面。塞尔比团队赢得6个以上该奖项的概率为32%,而根据丹尼斯顿策略选号时,中该奖项的数量不可能超过6个。塞尔比的彩票期望值与丹尼斯顿的彩票期望值,乃至所有人的彩票期望值相同,但是,丹尼斯顿策略可以让玩家免受风险的影响。要规避博彩活动的风险,仅凭购买数十万张彩票是不够的,还必须选择正确的号码。
1701026012
[ 上一页 ]  [ :1.701025963e+09 ]  [ 下一页 ]