资源描述:
《数学 外文翻译 外文文献 英文文献 具体数学》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、ConcreteMathematicsR.L.Graham,D.E.Knuth,O.Patashnik《ConcreteMathematics》,1.3THEJOSEPHUSPROBLEMR.L.Graham,D.E.Knuth,O.PatashnikSixthprinting,PrintedintheUnitedStatesofAmerica1989byAddison-WesleyPublishingCompany,Reference1-4pages具体数学R.L.格雷厄姆,D.E.克努特,O.帕塔希尼克《具体数学》,1.3,约瑟夫环问题R.L.格雷厄姆,D.E.克努特,
2、O.帕塔希尼克第一版第六次印刷于美国,韦斯利出版公司,1989年,引用8-16页1.递归问题本章研究三个样本问题。这三个样本问题给出了递归问题的感性知识。它们有两个共同的特点:它们都是数学家们一直反复地研究的问题;它们的解都用了递归的概念,按递归概念,每个问题的解都依赖于相同问题的若干较小场合的解。2.约瑟夫环问题我们最后一个例子是一个以FlaviusJosephus命名的古老的问题的变形,他是第一世纪一个著名的历史学家。据传说,如果没有Josephus的数学天赋,他就不可能活下来而成为著名的学者。在犹太
3、罗马战争中,他是被罗马人困在一个山洞中的41个犹太叛军之一,这些叛军
4、宁死不屈,决定在罗马人俘虏他们之前自杀,他们站成一个圈,从一开始,依次杀掉编号是三的倍数的人,直到一个人也不剩。但是在这些叛军中的Josephus和他没有被告发的同伴觉得这么做毫无意义,所以他快速的计算出他和他的朋友应该站在这个恶毒的圆圈的哪个位置。在我们的变形了的问题中,我们以n个人开始,从1到n编号围成一个圈,我们每次消灭第二个人直到只剩下一个人。例如,这里我们以设n=10做开始。这时的消灭顺序是2,4,6,8,10,3,7,1,9。所以编号是5的人活下来了。这个问题:就是定位最后活下来的人的数字J(n)。我们刚刚看到的是J(10)=5的情况。我们可能会推测当n是偶数的
5、时候J(n)=n=2;而且当n=2的时候结论验证了假设:J(2)=1。但是其他一些数字比较小的情况告诉我们
6、当n=4和n=6的时候这个假设错误了。于是我们回到了起点;让我们试着来个更好的猜测。呃...,J(n)看起来总是奇数。而且事实上,这个现象的原因是:围成的圆圈的第一轮消灭了所有的编号是偶数的人。之后我们又回到了与我们开始的时候类似的情形,除了人数只有原来一半的人,而且他们的编号改变了。所以,让我们假设最开始有2n个人,在第一轮结束后,我们剩下16而且3将是下一个出局的。这个就像是以n个人开始的情况,除了每个人的编号变为两倍减一。那就是,J(2n)=2J(n)-1;当n
7、≥1:我们现在可以快速的计算一下当n比较大的时候的值。例如,我们知道J(10)=5,所以J(20)=2J(10)-1=2*5-1=9:同样可知J(40)=17,进一步我们可以推算出J(5*2M)=2M+1+1但是,奇数的情况呢?当有2n+1个人的时候,编号是1的人会在第2n个人出局后紧接着出局,然后,我们剩下我们再次获得了形如n个人的情况,但是这次他们的编号是两倍加一。所以J(2n+1)=2J(n)+1;当n≥1;与等式J(1)=1组合,我们得到一个定义了J的所有取值的递推式:J(1)=1;J(2n)=2J(n)-1;当n≥1;J(2n+1)=2J(n)+1;当n≥1;这个
8、公式不是从J(n-1)计算J(n),这个递归式更加的“高效”,因为他以2为因子使n递减了一半或更多。我们可以计算J(1;000;000),如上所示,我们只要应用19次(1)式。但是,我们依旧要寻找一个闭合形式的公式,因为那样会更加快速和更有意义。总之,这是非常重要的事情。16用我们的递归式,我们可以很快地建造一张较小取值的表。可能我们可以通过这张表看出模式并猜出结果。瞧!看起来我们可以以2的幂分组(通过表中的竖线);在每组的开始,J(n)总是1,而且在一组内以2递增。所以,如果我们把n写成形如n=2M+J的公式,当2M是不超过n的2的最大次幂,且l是剩余的数。这样我们的递归
9、式的解法看起来是J(2M+L)=2L+1当m≥0且0≤L<2M(2)(注意如果2M≥n<2M+1,那么余下的数l=n-2M满足不等式0≤L<2M+1-2M=2M.)我们现在必须证明(2)式。如我们以前使用的数学归纳法一样,但是这次我们的数学归纳是基于变量m的。当m=0我们一定有l=0;因此(2)式的基础就变成了J(1)=1,这时是正确的。通过l是奇数还是偶数,这次的归纳证明分两部分。如果m>0且2M+L=2n那么l是偶数。且通过(1)式和归纳法假设可得J(2M+L)=2J(2M-1+L/2)-1=2(2L/2+1)