约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后结果+1即为原问题的解。数组方式假设下标从0开始,0,1,2 .. m-1共m个人,从1开始报数,报到k则此人从...
分类:
其他好文 时间:
2015-06-15 16:30:06
阅读次数:
153
一、实验内容
约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。
二、实验目的
掌握...
分类:
编程语言 时间:
2015-06-15 11:24:15
阅读次数:
136
??
题意是: 个数组成一个环,从第k个元素开始删除,每隔k个元素删一个,问最后删除的三个是什么
思路:约瑟夫问题变形,倒数第二个第三个求法与最后一个元素求法相同
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2015-06-14 21:29:27
阅读次数:
185
问题来历编辑
据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。一开始要站在什么...
分类:
编程语言 时间:
2015-06-14 09:36:42
阅读次数:
173
前记:之前对数据结构了解不够深入,主要可能还是之前上的一门“软件技术基础”的课程,那玩意儿,当时还没接触C语言就去学这个了,完全看不懂啊,讲的什么JB玩意儿,导致我对数据结构一直有一种惧怕的心理,哎。。。约瑟夫环问题:大家都很熟悉,我就随便拷贝一下题目:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已...
分类:
其他好文 时间:
2015-06-10 11:47:12
阅读次数:
115
约瑟夫问题:转载自约瑟夫问题据说着名犹太历史/数学家约瑟夫(Josephus)有过以下的故事:在罗马人占领乔塔帕特後,40个犹太士兵与约瑟夫躲到一个洞中,眼见脱逃无望,一群人决定集体自杀,约瑟夫建议自杀方式,41个人排成圆圈,由第1个人开始报数,每报数到5的人就必须自杀,..
分类:
编程语言 时间:
2015-06-04 17:35:26
阅读次数:
136
Description话说二哥当年学习数据结构的时候遇到了那道猴子报数的题目,其实这就是经典的约瑟夫问题。可是当年的二哥还是个毛头小子,只会用模拟的方法,而其他同学却使用了一些令二哥完全摸不到头脑的方法。……二哥一怒之下改了题目……话说当年花果山的猴子要选大王,选举办法如下:所有猴子按1-M编号围坐...
分类:
编程语言 时间:
2015-05-28 08:12:59
阅读次数:
749
链表是一个有序的列表,但是他在内存中时分散存储的,使用链表可以解决类似约瑟夫问题,排序,索引,广义表no = $no; $this->name = $name; $this->nickname = $nickname; }}$head = new Hero();/*...
分类:
其他好文 时间:
2015-05-15 22:47:03
阅读次数:
127
原来并不知道约瑟夫环还可以递推直接解orz约瑟夫问题的递推公式:设f[n]表示一共n个人,数到k出局,这样最后的winner (n个人从0开始标号,即0--n-1)f[n]=(f[n-1]+k)%n (注意%n里这个n也是变量初值f[1]=0【公式的详细证明可以refer这里:http://b...
分类:
其他好文 时间:
2015-05-15 21:08:20
阅读次数:
135