`
jayghost
  • 浏览: 440098 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

自定义约瑟夫环

 
阅读更多
约瑟夫环(Josephus)问题:古代某法官要判决n个犯人的死刑,他有一条荒唐的法律,将犯人站成一个圆圈,从第s个人开始数起,每数到第d个犯人,就拉出来处决,然后再数d个,数到的人再处决……直到剩下的最后一个可赦免.

public class Josephus {
	private static class Node {
		public int no;// 编号
		public Node next;// 下一个节点

		public Node(int no) {
			this.no = no;
		}
	}

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.print("请输入总人数:");
		int totalNum = scanner.nextInt();
		System.out.print("请输入报数的大小:");
		int cycleNum = scanner.nextInt();
		Node header = new Node(1);
		Node pointer = header;
		System.out.println("header==pointer?"+(header==pointer));
		System.out.println("header.equals(pointer)?"+(header.equals(pointer)));
		for (int i = 2; i <= totalNum; i++) {
			pointer.next = new Node(i);
			pointer = pointer.next;
		}
		pointer.next = header;
		// 初始化环形链表结束
		System.out.println("以下是出列的顺序:");
		while (pointer != pointer.next) {
			for (int i = 1; i < cycleNum; i++) {
				pointer = pointer.next;
			}
			System.out.println(pointer.next.no);
			pointer.next = pointer.next.next;
		}
		System.out.println(pointer.next.no);
	}
}


分享到:
评论

相关推荐

    约瑟夫环实验报告

    从给定的文件信息来看,主要的信息点集中在标题和描述中,即“约瑟夫环实验报告”以及“用vc6.0环境实现的约瑟夫环的上机实验报告”。这部分信息涉及到计算机科学中的一个重要数据结构问题——约瑟夫环(Josephus ...

    donet约瑟夫环问题的实现

    通过构建自定义的双向循环链表来模拟人的排队情况,并利用链表节点的增删操作实现约瑟夫环问题中的报数与淘汰过程。 #### 三、代码解析 1. **定义节点类 `MyList`**:用于表示链表中的每一个元素。 - **属性**: ...

    约瑟夫环问题(c++)含设计文档

    约瑟夫环问题(c++实现),包含设计文档,实现了8个功能: 1.要求在实现约瑟夫环的同时,应该满足以下要求: 2.完整的图形用户界面,可以配置程序的运行参数,如:n的值,k的值、m的值、执行动画的速度等; 3.算法...

    约瑟夫环 数据结构 课程设计

    约瑟夫环(Josephus Problem)是一个著名的理论问题,源于公元前一世纪犹太历史学家约瑟夫·弗拉基米尔的叙述。这个问题在数据结构和算法领域被广泛研究,主要涉及链表、队列和循环数组等数据结构的运用。在本次课程...

    约瑟夫环MFC

    约瑟夫环(Josephus Problem)是一个著名的理论问题,源于公元前一世纪犹太历史学家约瑟夫·弗拉维乌斯讲述的一个故事。在问题中,人们站成一个圈,并按照顺时针或逆时针顺序报数,每次数到特定数值的人会被排除出圈...

    约瑟夫环(数据结构实验MFC)

    约瑟夫环,又称为约瑟夫问题,是计算机科学中的一个著名算法问题,源于古希腊的一个传说。在这个问题中,人们站成一个圈,并按照顺时针或逆时针顺序报数,每次数到特定数值的人会被排除出圈,然后从下一个人继续报数...

    约瑟夫环实验报告 c语言版 刚试验过的

    【约瑟夫环问题概述】 约瑟夫环问题是一个经典的理论问题,源于古代犹太人的一个传说。在问题中,人们围成一个圈,按照一定的规则依次报数,每次数到特定数字的人会被排除出圈,然后从下一个人继续开始报数,直到只...

    约瑟夫环代码

    ### 约瑟夫环代码解析 #### 一、引言 约瑟夫环问题源自一个著名的数学问题,描述了一群人围成一圈,并按一定规则淘汰直至最后一个人的场景。该问题通常用来考察数据结构(如链表)的应用以及算法设计能力。本篇文章...

    约瑟夫环问题源码(c ++语言描述)

    约瑟夫环问题,也被称为约瑟夫环序列或约瑟夫问题,是计算机科学中的一个著名算法问题,源于古罗马的一种传说。该问题描述了一群人围成一个圈,从某个人开始按顺时针方向依次报数,每报到特定数值的人会被排除出圈,...

    Joesph环 约瑟夫环

    《约瑟夫环:经典数据结构问题的C#实现解析》 约瑟夫环,又称为约瑟夫问题,是一个著名的理论问题,源自古罗马的一个传说。问题的基本设定是:一群囚犯围成一个圈,从某个人开始按顺时针方向依次报数,报到特定数字...

    约瑟夫环(C++实现)

    【约瑟夫环(Josephus Problem)】 约瑟夫环是一个著名的理论问题,源自古罗马时期的一个传说。问题描述如下:人们站成一个圈,并按照顺时针或逆时针顺序报数,每次数到特定数值的人会被排除出圈,然后从下一个人...

    约瑟夫环游戏

    《约瑟夫环游戏》是基于MFC(Microsoft Foundation Classes)框架开发的一款小型应用程序,它以对话框界面呈现,允许用户自定义游戏规则,从而体验经典的约瑟夫环问题。约瑟夫环问题是一个理论上的数学问题,源自古...

    C语言约瑟夫环的实现

    约瑟夫环问题是一个经典的计算机科学问题,源自古代的一个传说。根据描述,约瑟夫环问题涉及一组人围成一个圈,按照特定的规则逐一剔除,直到只剩一人为止。在C语言中,通常使用循环链表来解决这个问题,因为它能够...

    约瑟夫环的三种解法.zip

    约瑟夫环问题,也称为约瑟夫环序列或约瑟夫问题,是一个著名的理论问题,源自古罗马的传说。问题的基本设定是:一群人站成一个圈,从某个人开始按顺时针方向依次报数,每当报到特定数字的人会被排除出圈,然后从下一...

    数据结构中线性表的应用,约瑟夫环算法 便于数据结构的学习.zip

    在C#中实现约瑟夫环时,可以利用`List&lt;T&gt;`类提供的便利操作,或者自定义链表类来实现。对于大型数据量,考虑使用并行处理或分布式计算也是优化的一种方式。同时,理解约瑟夫环算法还可以帮助我们更好地理解和应用...

    cpp代码-约瑟夫环 c++实现

    约瑟夫环问题,也称为约瑟夫环序列或约瑟夫问题,是一个著名的理论问题,源自古罗马历史上的一个故事。在这个问题中,人们站成一个圈,并按顺时针方向从某个人开始计数。每当计数到特定数值时,该人就会离开圈子,...

    约瑟夫环源代码

    约瑟夫环(Josephus Problem)是一个著名的理论问题,源于古罗马时期的传说。在这个问题中,人们站成一个圈,并按顺时针或逆时针顺序报数,每次数到特定数字的人会被排除出圈,然后从下一个人继续报数,直到只剩下...

    数据结构实验报告有最小生成树 约瑟夫环 魔王语言

    本实验报告涉及了三个重要概念:最小生成树、约瑟夫环和魔王语言,这些都是在数据结构学习中常见的问题。 首先,我们来讨论最小生成树。在图论中,给定一个加权无向图,最小生成树是一棵树形子图,包含了原图的所有...

    约瑟夫生死游戏队列实现

    约瑟夫生死游戏,也被称为约瑟夫环问题(Josephus Problem),是计算机科学和算法设计中的一个经典问题。这个游戏源自一个古老的传说,涉及到在战争中被捕的士兵们站成一个圈,按照一定的规则每间隔一定人数淘汰一人...

Global site tag (gtag.js) - Google Analytics