搜索资源列表
josephus
- 问题描述: 新Josephus排列问题定义如下:假设n个人排成一个环形,给定一个正整数m,从第1 个人开始,沿环计数,每遇到第m个人就让其出列,这时计算器m自动加一,且计数继续进 行下去。这个过程一直进行到所有的人都出列为止,最后出列者为赢家。设这n个人的编号 分别为1~n,每次从编号为1的竞赛者开始计数,那么每个人出列的次序定义为整数1~n 的一个排列。这个排列称为一个(n,m)Josephus排列。 例如,(7,3)Josephus 排列为3,7,6,2,4,1,5。
ysfh
- 约瑟夫环的问题采用的是典型的循环链表的数据结构,就是将一个链表的尾元素指针指向队首元素。 解决问题的核心步骤: 1.建立一个具有n个链结点,无头结点的循环链表; 2.确定第1个报数人的位置; 3.不断地从链表中删除链结点,直到链表为空。 具体过程就是先建一个单向循环链表,用来存储这些人的编码和密码。然后删掉报数为m的人,在删除的同时将这个人的密码和标号输出。直到把这个链表删空为止。这就是我解决这个问题的方案。 -Joseph Ring is a typical
mnm
- joseph环 *问题描述:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。 *要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。 *测试数据:m的初值为20,n=7