题目描述
n个数排成一个圈。第一次删除m,以后每k个数删除一次,求最后一个被删除的数。
题目分析
首先为了取模,n个人编号为0,1,2......n-1,当只有1个人时,肯定是编号为0的(只有它),所以dp[1]=0,
当有两个人时,最后剩下的(dp[1]+k)%2,就是反向思考的过程,于是dp[i]=(dp[i-1...
分类:
其他好文 时间:
2015-04-24 09:13:13
阅读次数:
246
问题描述:编号为1,2… n 的n 个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1 开始顺序报数,报到m 时停止报数,报m 的人出列,将他的密码作为新的m 值,从他的顺时针方向上的下一个开始重新从1 报数,如此下去,直至所有人全部出列为止,设计一个程序求出出列顺序。
基本功能要求:
1)利用单循环链表作为存储结构模...
分类:
其他好文 时间:
2015-04-23 00:04:39
阅读次数:
184
题目:约瑟夫环问题中,最后剩下的人是第几个人。如一共4个人,数到2的人出列,最后剩下的那个人是第1个人,返回1.
int Josephus(int n, int k)
{
if (n<=0 || k<1)
throw exception();
if (n==1)
return 1;//人为规定,n为1时返回1
int res=k%2;//只有两个人时,返回的人的下标(从零开...
分类:
其他好文 时间:
2015-04-22 11:38:09
阅读次数:
199
假定一共有n个人围成一圈,随机从某个人开始报数,从0报数,第m个报数的人(报数为m-1)从圈中删除。那么最后剩下的人的在第一轮中报数是多少(即,开始时候的编号是多少?)
假定这里剩下的人是JACK,令函数f (n,m)表示jack在首轮n个人中的编号
第一轮n个人理论上报数顺序应该是 0 1 2 。。。 n-1(只不过报到M-1之后,后面的人不用继续报出来,但是...
分类:
其他好文 时间:
2015-04-20 11:17:49
阅读次数:
142
import java.util.Scanner;class Person{ String name; int seqno; Person(String _name, int _seqno){ name = _name; seqno = _seqno; ...
分类:
编程语言 时间:
2015-04-19 11:29:52
阅读次数:
172
约瑟夫环问题可以简单的使用数组的方式实现,但是现在我使用循环链表的方法来实现,因为上午看到一道面试题规定使用循环链表解决约瑟夫环问题。 什么是约瑟夫环? “约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;.....
分类:
编程语言 时间:
2015-04-18 21:49:24
阅读次数:
121
swustoj 142猴子报数(0142)Time limit(ms): 1000Memory limit(kb): 65535Submission: 1338Accepted: 830问题描述:n个猴子围坐一圈并按照顺时针方向从1到n编号,从第s个猴子开始进行1到m的报数,报数到第m的猴子退出报数...
分类:
其他好文 时间:
2015-04-17 19:51:15
阅读次数:
112
什么是约瑟夫事件。就是一个数学算法问题。描述如下:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
分类:
其他好文 时间:
2015-04-17 15:57:59
阅读次数:
114
在数学最优化问题中,拉格朗日乘数(以约瑟夫·路易斯·拉格朗日命名) 是一种寻找变量受一个或多个限制的多元方程的极值的方法。这种方法将一个有n变量与k约束的问题转换为一个更易解的n+k个变量的方程组,其变量不受任何约束。这种方法引入了一种新的标量未知数,即拉格朗日乘数:约束方程的斜率(gradient...
分类:
其他好文 时间:
2015-04-16 19:32:25
阅读次数:
236
1.已知n个人(n>=1)围坐一圆桌周围,从1开始顺序编号。从序号为1的人开始报数,顺时针数到m的那个人出列。他的下一个人又从1开始报数,数到m的那个人又出列。依此规则重复下去,直到所有人全部出列。请问最后一个出列的人的编号。Node* RemoveList(Node* head, int len)...
分类:
其他好文 时间:
2015-04-16 17:29:42
阅读次数:
214