约瑟夫环(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 ...
通过构建自定义的双向循环链表来模拟人的排队情况,并利用链表节点的增删操作实现约瑟夫环问题中的报数与淘汰过程。 #### 三、代码解析 1. **定义节点类 `MyList`**:用于表示链表中的每一个元素。 - **属性**: ...
约瑟夫环问题(c++实现),包含设计文档,实现了8个功能: 1.要求在实现约瑟夫环的同时,应该满足以下要求: 2.完整的图形用户界面,可以配置程序的运行参数,如:n的值,k的值、m的值、执行动画的速度等; 3.算法...
约瑟夫环(Josephus Problem)是一个著名的理论问题,源于公元前一世纪犹太历史学家约瑟夫·弗拉基米尔的叙述。这个问题在数据结构和算法领域被广泛研究,主要涉及链表、队列和循环数组等数据结构的运用。在本次课程...
约瑟夫环(Josephus Problem)是一个著名的理论问题,源于公元前一世纪犹太历史学家约瑟夫·弗拉维乌斯讲述的一个故事。在问题中,人们站成一个圈,并按照顺时针或逆时针顺序报数,每次数到特定数值的人会被排除出圈...
约瑟夫环,又称为约瑟夫问题,是计算机科学中的一个著名算法问题,源于古希腊的一个传说。在这个问题中,人们站成一个圈,并按照顺时针或逆时针顺序报数,每次数到特定数值的人会被排除出圈,然后从下一个人继续报数...
【约瑟夫环问题概述】 约瑟夫环问题是一个经典的理论问题,源于古代犹太人的一个传说。在问题中,人们围成一个圈,按照一定的规则依次报数,每次数到特定数字的人会被排除出圈,然后从下一个人继续开始报数,直到只...
### 约瑟夫环代码解析 #### 一、引言 约瑟夫环问题源自一个著名的数学问题,描述了一群人围成一圈,并按一定规则淘汰直至最后一个人的场景。该问题通常用来考察数据结构(如链表)的应用以及算法设计能力。本篇文章...
约瑟夫环问题,也被称为约瑟夫环序列或约瑟夫问题,是计算机科学中的一个著名算法问题,源于古罗马的一种传说。该问题描述了一群人围成一个圈,从某个人开始按顺时针方向依次报数,每报到特定数值的人会被排除出圈,...
《约瑟夫环:经典数据结构问题的C#实现解析》 约瑟夫环,又称为约瑟夫问题,是一个著名的理论问题,源自古罗马的一个传说。问题的基本设定是:一群囚犯围成一个圈,从某个人开始按顺时针方向依次报数,报到特定数字...
【约瑟夫环(Josephus Problem)】 约瑟夫环是一个著名的理论问题,源自古罗马时期的一个传说。问题描述如下:人们站成一个圈,并按照顺时针或逆时针顺序报数,每次数到特定数值的人会被排除出圈,然后从下一个人...
《约瑟夫环游戏》是基于MFC(Microsoft Foundation Classes)框架开发的一款小型应用程序,它以对话框界面呈现,允许用户自定义游戏规则,从而体验经典的约瑟夫环问题。约瑟夫环问题是一个理论上的数学问题,源自古...
约瑟夫环问题是一个经典的计算机科学问题,源自古代的一个传说。根据描述,约瑟夫环问题涉及一组人围成一个圈,按照特定的规则逐一剔除,直到只剩一人为止。在C语言中,通常使用循环链表来解决这个问题,因为它能够...
在C#中实现约瑟夫环时,可以利用`List<T>`类提供的便利操作,或者自定义链表类来实现。对于大型数据量,考虑使用并行处理或分布式计算也是优化的一种方式。同时,理解约瑟夫环算法还可以帮助我们更好地理解和应用...
约瑟夫环问题,也称为约瑟夫环序列或约瑟夫问题,是一个著名的理论问题,源自古罗马历史上的一个故事。在这个问题中,人们站成一个圈,并按顺时针方向从某个人开始计数。每当计数到特定数值时,该人就会离开圈子,...
约瑟夫环(Josephus Problem)是一个著名的理论问题,源于古罗马时期的传说。在这个问题中,人们站成一个圈,并按顺时针或逆时针顺序报数,每次数到特定数字的人会被排除出圈,然后从下一个人继续报数,直到只剩下...
本实验报告涉及了三个重要概念:最小生成树、约瑟夫环和魔王语言,这些都是在数据结构学习中常见的问题。 首先,我们来讨论最小生成树。在图论中,给定一个加权无向图,最小生成树是一棵树形子图,包含了原图的所有...
约瑟夫生死游戏,也被称为约瑟夫环问题(Josephus Problem),是计算机科学和算法设计中的一个经典问题。这个游戏源自一个古老的传说,涉及到在战争中被捕的士兵们站成一个圈,按照一定的规则每间隔一定人数淘汰一人...
约瑟夫环(约瑟夫问题):已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌...