约瑟夫环是这样的描述:有n个孩子围坐成一圈,编号为0~n-1。现在让这些孩子报数,从0~m-1依次报数。报到m-1的孩子退出圈。求最后留在圈里的孩子。下面直接看这个问题的数学解法:上面的数学推到已经完成了,所以代码实现:
分类:
其他好文 时间:
2015-10-16 13:19:36
阅读次数:
145
/* *约瑟夫环问题 * 抱1 2 3 */import java.util.*;public class Yuan{ public static void main(String[] args) throws Exception{ Scanner input = new Sca...
分类:
其他好文 时间:
2015-10-11 16:29:55
阅读次数:
192
约瑟夫环问题说的是,n个人围成一圈,从第k个人开始沿着一个方向报数,报到第m个人时,第m个人出列,从紧挨着的下一个人(未出列)开始,求整个环中人的出列顺序。下面是我用java实现的解决方法。 1 class JosephLoop 2 { //n为环中人数,m为每次报数的人数,k为报数的...
分类:
编程语言 时间:
2015-10-09 00:43:53
阅读次数:
149
约瑟夫环问题(C语言、数据结构版)一、问题描述N个人围城一桌(首位相连),约定从1报数,报到数为k的人出局,然后下一位又从1开始报,以此类推。最后留下的人获胜。(有很多类似问题,如猴子选代王等等,解法都一样)二、思路分析 (1)可将人的顺序简单编号,从1到N; (2)构造一个循环链表,可...
分类:
编程语言 时间:
2015-10-07 01:06:29
阅读次数:
234
(约瑟夫环问题)有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那个人。package aiqiyi;import java.util.ArrayList;public class Main { public static int le...
分类:
其他好文 时间:
2015-09-26 22:27:52
阅读次数:
248
题目来源:《剑指offer》面试题45 题目:0,1,。。。,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 解法一:经典解法,用环形链表模拟圆圈。这种方法每删除一个数字需要m步运算,总共有n个数字,因此总的时间复杂度是O(mn)...
分类:
编程语言 时间:
2015-09-19 16:46:31
阅读次数:
156
约瑟夫环问题的原来描述为,设有编号为1,2,……,n的n(n>0)个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈,再从他的下一个人起重新报数,报到m时停止报数,报m的出圈,……,如此下去,直到所有人全部出圈为止。当任意给定n和m后,设计算法求n个人出..
分类:
其他好文 时间:
2015-09-08 07:19:36
阅读次数:
172
唉,说点废话,昨天偶尔看到一年前自己用C解约瑟夫环问题的循环链表,唏嘘不已,想想自己一年前嵌入式的梦呢,这两天发生了许多,而有些人不在了就真的不在了,心情不好,不多说了,直接上代码,只是些链表的基本操作,花些功夫看就好了。 首先,建立一个Node类,里面内构一个Node对象和数据(用来区分);...
分类:
编程语言 时间:
2015-08-09 20:26:50
阅读次数:
185
题目传送门 1 /* 2 数学:约瑟夫环问题的变形,首先定义f[i]表示剩下i个人时,最后一个选出的人,有个公式:f[i] = (f[i-1] + m) % i 3 f[1] = 0(编号从0开始),那么类似最后一个数的求法,先找到剩2个人和剩3个人时,最后的编号,然后跟着最...
分类:
其他好文 时间:
2015-08-08 16:19:41
阅读次数:
112
约瑟夫环 问题描述:约瑟夫问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报...
分类:
其他好文 时间:
2015-08-07 23:36:58
阅读次数:
110