使用顺序表类SeqList求解约瑟夫环问题
来源:互联网 发布:网络dd是什么意思 编辑:程序博客网 时间:2024/05/16 15:50
约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
顺序表类SeqList参考:http://blog.csdn.net/tanlon_0308/article/details/40426707
约瑟夫环运作如下:
1、一群人围在一起坐成环状(如:N)
2、从某个编号开始报数(如:K)
3、数到某个数(如:M)的时候,此人出列,下一个人重新报数
4、一直循环,直到所有人出列,约瑟夫环结束
下面是使用顺序表类SeqList求解约瑟夫环问题的代码:
package com.clarck.datastructure.linear;/** * 使用顺序表类SeqList求解约瑟夫环问题。 * * @author clarck * */public class Josephus { /** * 创建约瑟夫环并求解 * * @param number * 参数指定环长度 * @param start * 起始位置 * @param distance * 计数 */ public Josephus(int number, int start, int distance) { // 采用顺序表存储约瑟夫环的元素,元素类型是字符串,构造方法参数指定顺序表容量 SeqList<String> list = new SeqList<String>(number); for (int i = 0; i < number; i++) { list.append((char) ('A' + i) + ""); } System.out .print("约瑟夫环(" + number + "," + start + "," + distance + "),"); System.out.println(list.toString()); int i = start; while (list.length() > 1) { // 计数按循环规律变化,顺序表可看作是环形结构 i = (i + distance - 1) % list.length(); // 删除指定位置对象 System.out.print("删除" + list.remove(i).toString() + ","); System.out.println(list.toString()); } System.out.println("被赦免者是" + list.get(0).toString()); } public static void main(String args[]) { new Josephus(5, 0, 2); }}运行结果如下:
约瑟夫环(5,0,2),(A, B, C, D, E) 删除B,(A, C, D, E) 删除D,(A, C, E) 删除A,(C, E) 删除E,(C) 被赦免者是C
0 0
- 使用顺序表类SeqList求解约瑟夫环问题
- 使用顺序表求解约瑟夫环问题
- 使用顺序表求解约瑟夫环问题 (自定义顺序表)
- 使用顺序表求解约瑟夫环问题 (利用java中的ArrayList)
- 顺序表类:class SeqList
- 使用单链表求解约瑟夫环问题
- 使用循环双链表求解约瑟夫环问题
- 【数据结构】顺序表seqlist
- 求解约瑟夫环问题
- 约瑟夫环问题求解
- SeqList——顺序表
- SeqList(顺序表的实现)
- SeqList 顺序表的实现
- 使用单链表求解约瑟夫环问题 (自定义单链表)
- 用顺序表实现约瑟夫环问题
- 数据结构:循环链表求解约瑟夫环问题
- 约瑟夫问题(顺序表)
- 顺序表实现(SeqList C++)
- iOS 使用第三方SDK x86_64错误解决方法
- 嵌入式 hi3518平台获取网络环境中的ip、netmask、broadcast等信息
- Linux 网络编程——TCP(转)
- linux系统ioctl使用示例
- 百练 1088
- 使用顺序表类SeqList求解约瑟夫环问题
- xxx
- 【产品经理】【产品设计纲领】LinkedIn产品总裁的产品成功之道(ZZ)
- 嵌入式 hi3518平台获取网关
- 2014年10月24日周总结
- 生成JNI的DLL时提示找不到jni.h的解决办法Cannot open include file: 'jni.h': No such file or directory
- ubuntu 下minicom的安装及使用
- AJAX方法中提交请求,target="_blank" 不能正确打开新的浏览器窗口
- 读<大数据日知录:架构与算法>有感