约瑟夫环问题(Josephus).ppt

约瑟夫环问题(Josephus).ppt

ID:52134974

大小:2.06 MB

页数:13页

时间:2020-04-01

约瑟夫环问题(Josephus).ppt_第1页
约瑟夫环问题(Josephus).ppt_第2页
约瑟夫环问题(Josephus).ppt_第3页
约瑟夫环问题(Josephus).ppt_第4页
约瑟夫环问题(Josephus).ppt_第5页
资源描述:

《约瑟夫环问题(Josephus).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、问题描述已知n(<2^15)个人(以编号1,2,…,n分别表示)围坐在一圆桌上,从编号为k(1≤k≤n)的人开始报数,数到m的那个人出列,他的下一个人又从1开始报数,数到m的那个人又出列,依此重复,直到圆桌周围的人全部出列,依次输出最后三个出列的序号。输入格式:第一行为一个整数T(<2^15)表示测试次数,接着第二到T+1行分别为n,m和k的值。例:21023输出格式:T行最后min(n,3)个出列的编号。结果:615问题背景这个问题是以弗拉维奥•约瑟夫斯命名的,它是1世纪的一名犹太历史学家。他在自己的日记中

2、写道,他和他的40个战友被罗马军队包围在洞中。他们讨论是自杀还是被俘,最终决定自杀,并以抽签的方式决定谁杀掉谁。约瑟夫斯和另外一个人是最后两个留下的人。约瑟夫斯说服了那个人,他们将向罗马军队投降,不再自杀。n=12;k=4;m=3出列n=12;k=4;m=3出列解题方法思路:将n个人分别用1,2…,n表示,并存放于一个数组中,将出列的人的号码从数组中删除,并输出最后三个出列的号码。关键:(1)从第k个人开始报数,而非第一个人开始。(2)当报到第n个人时,编号为1的人继续往下报数。(3)显示出最后三个出列的人的

3、编号。Josephusjp=newJosephus();inta[]=newint[n];for(inti=0;i

4、[n];intc=0;inti=k-2;while(true){for(intj=0;j

5、起始号码k6循环数m8最后出列的3人3146总人数n30起始号码k4循环数m7最后出列的3人182326数据测试总人数n48起始号码k6循环数m15最后出列的3人472146总人数n68起始号码k34循环数m25最后出列的3人38544总人数n105起始号码k73循环数m4最后出列的3人873221总人数n120起始号码k16循环数m23最后出列的3人325397总人数n300起始号码k80循环数m12最后出列的3人70296198总人数n500起始号码k12循环数m30最后出列的3人166358266实验总

6、结:(1)经过这次的实践,让我们明白了合作的重要性。(2)在程序设计初期,总会或多或少的出现问题,经过我们的耐心调试,不断地修改,慢慢地将程序设计较好的符合了要求。(3)当然其中还是会存在一些漏洞,需要进一步的改进。在计算机中是容不得丝毫的错误的,这也让我们学到了面对科学要持有严谨的态度,否则必定得不到应该有的结果。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。