约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知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
问题来历编辑
据说著名犹太历史学家 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)环问题:编号为1,2,3,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一人开始重新从1报数,如....
分类:
其他好文 时间:
2015-06-10 10:19:12
阅读次数:
117
// uva live 3882 And Then There Was One
//
// 经典约瑟夫环问题。n是规模,k是每次数的人数,m是第一个出列的人。
//
// 但是暴力用链表做肯定是不行的,因为 1 <= n <= 10000 , 1<= k <= 10000
// 1 <= m <= n; 虽然我知道公式是什么,但是我并不会推导,看了几乎一个下午的
// 数学推导过程,又弄了几个...
分类:
其他好文 时间:
2015-06-01 22:39:16
阅读次数:
171
好久没有看有关算法的问题了,今天废了不少劲,再感叹一句:要想学好算法就要常练习,没什么捷径可走。废话不多说,如下: 问题描述:有m个人,围成一个环,编号为 0、1、2、3、、、m-1,从第一个人开始循环报数,假设数到n的那个人出列,然后从下一个人继续数数,数到n出列,以此循环,最后那个人为胜利...
分类:
其他好文 时间:
2015-05-10 00:52:28
阅读次数:
247
And Then There Was OneTime Limit: 5000MSMemory Limit: 65536KTotal Submissions: 4873Accepted: 2598DescriptionLet’s play a stone removing game.Initially...
分类:
其他好文 时间:
2015-05-07 18:28:00
阅读次数:
164
问题描述:假设有N个小孩按照序号1,2,,,N围坐成一圈,从第一个小孩开始报数,每次报到n的人退出,接着从下一个人重新开始从1开始报数,下一次再报到n的人退出,求最后一个留下的人;数组实现:public class huan { /** * @param args */ ...
分类:
其他好文 时间:
2015-05-06 12:34:06
阅读次数:
108
/n个人排一圈123报数,报到3的人退到圈外,直到剩最后一个人为止/
//后插法建立循环链表#include
#include
#include
#include
#define N 5
typedef struct Node
{
int num;
struct Node *next;
}Node,*node;
int...
分类:
其他好文 时间:
2015-05-06 00:01:47
阅读次数:
123