约瑟夫问题的通用解决方案,用了队列(jdk里面的)
题目描述:n只猴子要选大王,选举方法如下:所有猴子按 1,2 ……… n 编号并按照顺序围成一圈,从第 k
个猴子起,由1开始报数,报到m时,该猴子就跳出圈外,下一只猴子再次由1开始报数,如此循环,直到圈内剩下一只猴子时,这只猴子就是大王。
import sun.misc.Queue;
/**
* @author: Dahai He
* @time: 2010-7-14 下午02:28:50
*/
public class Test{
public static void main(String[] args) {
//指定位置,在第几个位置进行剔除
int M = 3;
//指定队列的大小
int N = 10;
//初始化队列
Queue q = new Queue();
//把成员压入队列
for (int i = 1; i <= N; i++){
q.enqueue(i);
}
//对队列进行循环查找
try {
while (!q.isEmpty()) {
for (int i = 0; i < M - 1; i++){
//如果不是指定位置的元素,队列头直接去队尾
q.enqueue(q.dequeue());
}
//把指定位置的元素提出队列
System.out.println(q.dequeue() + " ");
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
C语言课程设计之猴子选大王(约瑟夫问题)有详细流程,有源代码,希望对你有帮助
约瑟夫问题是一个经典问题(猴子选大王) 有循环链表等多种解法,这里提供的是最简单的数学解法数学解法。
计算机 电子信息工程 通信工程 实验 课程设计 工程项目 资源 必过 已过 好用 答辩简单 按着来就行 大学生关注我 以后所有我的课设都会更新 所需积分很低 签一次到就能得不用去桃宝买 多支持 个人主页有更多课设实验...
环形链表,猴子选大王,数到几出去,从几开始数,由用户输入决定
C语言,数据结构作业 约瑟夫环 猴子选大王
C++猴子选大王问题(可以从任意位置开始),得到猴子的大王所在位置
这是大学数据结构的一次上机题,题目是这样的;有M只猴子,依次按1到M的顺序坐好,然后从第一只...直到只剩下最后一只猴子,则那只猴子就是大王。 要求:只输入M N值,就可以得到依次出局的猴子编号, 及大王幸运编号。
一个关于约瑟夫问题的应用,猴子选大王。C++语言写的。
约瑟夫问题十日十里个克格勃谈话普通话革命那些劳资蜡染乐观和和专利法搞活脑上体后赶不上浪费上里头后
利用猴子选大王随约瑟夫问题进行探究,用多种方式进行完成 迅速 简洁
【问题描述】要从n只猴子中选出一位大王。它们决定使用下面的方法: n只猴子围成一圈,从1到n顺序编号。从第q只猴子开始,从1到m报数,凡报到m的猴子退出竞选,下一次又从退出的那只猴子的下一只开始从1到m报数,...
基于java数据结构链表写的猴子选大王,其实就是一个约瑟夫环问题,采用java数据结构链表写的。有点小问题。当输入一只猴子,报数为1时删除会出错。没有实现动态显示猴子的添加和删除。
经典C题目猴子选大王,即约瑟夫环,是一个经典的问题,此为模拟法实现。
数据结构的一道入门题,猴子选王也叫约瑟夫问题,可以使用两种结构来做:数组和链表来做,刚开始学习数组或者链表的同学都可以看看这道题来练练手,里面有详细思路和代码实现
约瑟夫问题【小甲鱼-数据结构-第18讲】 用循环链表解决约瑟夫问题,并把41个人自杀顺序编号输出。代码包括循环链表的建立、初始化、插入、删除等操作。
m个猴子排成圈,数到n就出去,最后一个为猴王
约瑟夫问题c++解决方案,测试平台VC6.0
约瑟夫问题的算法解决方案,利用循环链表解决这个问题
一堆猴子都有编号,编号是1,2,3 …m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中剩下最后一只猴子,则该猴子为大王。
用C语言对约瑟夫问题进行编程,从而解决最终的排序问题