* 约瑟芬问题,俗称丢手帕问题: * 有n个人围成一圈,从指定的第一个人开始从1依次报数, * 数到m的那个人出列,接着下一个人从1开始接着报数, * 直到最后只剩下一个人出列,问最后出列的是第几个人?1.单链表解决: 1 /** 2 * 结点类 3 * @author Administrato.....
分类:
其他好文 时间:
2015-08-09 15:23:26
阅读次数:
160
题目传送门 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
描述:约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1 开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。输入:每行是用空格分开的两个整数,第一个是 n, ...
分类:
编程语言 时间:
2015-08-06 23:48:18
阅读次数:
207
约瑟夫环问题// 约瑟夫环.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include
#include
#include
/*常量定义*/
#define OK 0 //成功执行
#define Err_Memory -1 //内存分配错误...
分类:
其他好文 时间:
2015-08-06 18:32:19
阅读次数:
116
题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。
分析:本题就是有名的约瑟夫环问题。既然题目有一个数字圆圈,很自然的想法是我们用一个数据结构来模拟这个圆圈。在常用的数据结构中,我们很容易想到用环形列...
分类:
其他好文 时间:
2015-08-05 22:22:13
阅读次数:
367
package cn.java.project.Josephus;import java.util.LinkedList;import java.util.List;import java.util.Scanner;/** * 丢手帕(约瑟夫)问题 * * 具体问题:设编号为1,2,3....n的....
分类:
其他好文 时间:
2015-08-05 21:39:58
阅读次数:
141
题目要求:
0, 1, … , n-1 这 n 个数字排成一个圈,从数字 0 开始每次从这个圈里删除第 m 个数字。求这个圈剩下的最后一个数字。本题是约瑟夫环问题。
除了以下给出的2中解法,更高级的算法:约瑟夫问题的两个O(log n)解法1. 环形链表由于要不断地从圈里删除一个数字,容易想到用链表实现。用链表将这 n 个数字存储,头尾相连,每隔 m 个删除一个,最后剩下的即为结果。
由于...
分类:
其他好文 时间:
2015-07-30 23:27:22
阅读次数:
215
http://acm.hdu.edu.cn/showproblem.php?pid=1443JosephTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s)...
分类:
其他好文 时间:
2015-07-24 20:36:16
阅读次数:
206
约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称“丢手绢问题”.)约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2...
分类:
其他好文 时间:
2015-07-20 12:39:38
阅读次数:
487