1701025953
黑尔斯认为,我们别无选择,只能另起炉灶,在可以借助计算机验证的前提下重新整合大量的数学资料。黑尔斯曾经为证明过程是否站得住脚而头疼不已,他认为,如果用于验证证明过程的编码本身便于验证(黑尔斯有充分的理由认为这个目标是可以实现的),我们就可以一劳永逸地摆脱类似的争议。然后呢?也许就是要求计算机在完全不需要人类介入的情况下可以独立完成证明过程,甚至具有思维能力。
1701025954
1701025955
如果这一切真的发生了,是不是意味着数学将会寿终正寝?的确如此,如果计算机在思维能力方面赶超人类,然后像某些偏激的未来主义者预测的那样,把人类当作奴隶、牲畜或者宠物,那么,数学真的会和所有东西一起灭亡。毕竟,几十年来,人们一直在利用计算机辅助数学研究。有很多种曾经被视为“研究”
1701025956
1701025957
的计算活动,在现代人的心目中已经与10位数的求和一样不再具有创造性,也不值得称道了。只要笔记本电脑可以完成的工作,再也不能算作数学研究了。但是,数学家并没有因此失业。就像动作片的主角跑得比爆炸引起的大火蔓延的速度要快一样,数学家也总能领先于计算机影响力不断扩展的速度。
1701025958
1701025959
如果未来的机器智能真的可以接管大部分我们现在视为研究的工作,会怎么样呢?我们会重新分类,把那些研究工作划拨到“计算”的项目之下。而人类利用善于做定量研究的头脑所完成的全部工作,都会被称作“数学研究”。
1701025960
1701025961
虽然海明码的效果相当不错,但是人们想百尺竿头更进一步,毕竟海明码的效率还可以进一步提高。早在穿孔纸带与机械式继电器时代,计算机就已经可以完美地处理几乎所有7位数的代码块了。海明码似乎过于谨慎了,我们肯定可以减少向信息中添加的保护代码位数,香农的著名定理证明我们确实可以做到这一点。比如,香农认为,如果错误的发生概率为每1 000位数的代码中出现一个错误,那么在应用某些编码进行处理后,信息的长度仅比编码前增加了1.2%。这些编码还不是最好的,如果逐渐增加基础代码块的长度,我们发现某些编码在达到一定的处理速度的同时,还能满足我们对信息可靠程度的任何要求。
1701025962
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
[
上一页 ]
[ :1.701025953e+09 ]
[
下一页 ]