引用

据说著名犹太历史学家 约瑟夫有过以下的故事:

在罗马人占领乔塔帕特后,39 个犹太人与约瑟夫及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而约瑟夫 和他的朋友并不想遵从,约瑟夫要他的朋友先假装遵从,他将朋友与自己安排在第16个与第31个位置,于是逃过了这场死亡游戏。

我的答案:

package test;

import java.util.ArrayList;;

public class CircleTest {

int m; //总人数

int n; //第几个出局

ArrayList circle = new ArrayList ();

public CircleTest(int m, int n) {

this.m = m;

this.n =n;

//初始化环

for (int i = 1; i <= m; i++) {

circle.add(String.valueOf(i));

}

print(circle);

}

public void doAction() {

ArrayList temp = null;

int k = n;//计数

while (true) {

temp = (ArrayList)circle.clone();

if (temp.size() == 1) {

System.out.println(temp.get(0)+"\n");//最后一个出局的人

break;

}

for (int i =0; i < temp.size(); i++) { //循环

k--;

if (k == 0) {

System.out.print(temp.get(i)+" ");//打印出局的人

circle.remove(temp.get(i)); //出局

k = n; //重新开始计数

}

}

}

}

//打印

public void print(ArrayList list){

for(int i=0;i

System.out.print(list.get(i)+" ");

}

System.out.print("\n\n");

}

public static void main(String args[]) {

CircleTest test = new CircleTest(41,3);

test.doAction();

}

}

分享到:

2013-05-17 10:40

浏览 3221

评论

约瑟夫环 java_约瑟夫环的java实现相关推荐

  1. 约瑟夫环 java_约瑟夫环Java实现

    /** * 约瑟夫问题 * 设编号为 1,2,- n 的 n 个人围坐一圈, * 约定编号为 k(1<=k<=n)的人从 1 开始报数, * 数到 m 的那个人出列, * 它的下一位又从 ...

  2. 约瑟夫环(约瑟夫问题)求最后出列的人数

    约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出 ...

  3. 0环权限高还是3环_环0到环3

    0环权限高还是3环 Most likely, you're aware of the hardware "protection rings" in Intel Architectu ...

  4. 解题报告:luoguP2868 Sightseeing Cows G(最优比率环,负环判定,二分答案)

    根据题意,我们要环上各点权值之和除以各边权值之和最大. 求最大答案,很明显可以使用二分答案.那么我们假设当前答案为 x,如果有更大的答案,那么方程就可以按下图转换: 也就是说如果有更大的答案,则有一个 ...

  5. Windows系统调用学习笔记(二)—— 3环进0环

    Windows系统调用学习笔记(二)-- 3环进0环 要点回顾 基本概念 _KUSER_SHARED_DATA 0x7FFE0300 实验:判断CPU是否支持快速调用 第一步:修改EAX=1 第二步: ...

  6. 左神算法:两个单链表相交的一系列问题(链表是否有环 / 两无环链表是否相交 / 两有环链表是否相交)

    本题来自左神<程序员代码面试指南>"两个单链表相交的一系列问题"题目. 题目 在本题中,单链表可能有环,也可能无环.给定两个单链表的头节点 head1 和 head2, ...

  7. 【永磁同步电机转速环ADRC电流环ADRC双环无传感器控制】

    永磁同步电机转速环ADRC电流环ADRC无传感器控制 原理.仿真.波形.总结 转速环.电流环ADRC原理 仿真框图 仿真波形 总结 原理.仿真.波形.总结 转速环.电流环ADRC原理 1.转速环ADR ...

  8. 小白从零开始:STM32双闭环(速度环、位置环)电机控制(硬件篇)

    小白从零开始:STM32平铺式双闭环(速度环.位置环)电机控制(硬件篇) 文章目录 前言 STM32平铺式双闭环电路设计 一.立创EDA(硬件设计) 二.PCB资料包获取方式 总结 前言 小白从零开始 ...

  9. 【PMSM】二. 经典电流环、速度环设计(下)

    上一篇文章讨论了永磁无刷电机电流环.速度环的建模和控制器的参数整定,这篇文章会讨论前馈.滤波.抗饱和算法以及其他一些要注意的细节,且包含了大量工程经验.结合这两篇文章的内容,我们可以完整地使用经典 P ...

  10. 基于QPSK的载波同步和定时同步性能仿真,包括Costas环的gardner环

    目录 1.算法描述 2.matlab算法仿真效果 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 载波同步是相干解调的基础,不管对于模拟通信还是数字通信来说,只要是相干解调,接收端都必须 ...

最新文章

  1. 虚拟主机用户ftp和apache用户文件互操作权限解决方法
  2. 计算机课件比赛总结,课件制作比赛活动总结
  3. day32 java 多线程(3)了解篇
  4. bzoj1562[NOI2009] 变换序列
  5. 使用Tomcat发布war包
  6. 阿里P9谈程序员——程序员的青春饭
  7. win7 计算机刷新dns,刷新dns,教您怎么刷新DNS
  8. Quartus II 安装
  9. IIS网站中下载.bat文件
  10. 【NOIP 费用流】JZOJ_3029 观光公交
  11. 虚拟化kvm-虚拟化概述
  12. citrix VPX 中申请证书的重点
  13. ECharts地图使用
  14. 54. Java序列化三连问,是什么?为什么需要?如何实现?
  15. android 8.0卡顿,安卓8.0是真的快!但一直说安卓卡的人,却不是iPhone用户
  16. 2022年版中国制冷设备市场深度分析与投资调研评估报告报告
  17. RHCSA (二) —— 常用简单命令Linux文件类型目录操作命令文件操作命令
  18. 特技世家出身导演史考特沃夫亲上阵搏命悬空摄影
  19. PPT结束语有哪些?
  20. “对不起,你的离职是我的错!”

热门文章

  1. 淘宝APP用户体系运营拆解​
  2. 微信云控源码帮您快速复制营销
  3. JAVA_调用方法_用户输入姓名打印出欢迎词
  4. 怎么上传代码到GitHub
  5. Mac命令行上传代码至GitHub
  6. 黑客攻击入侵服务器的6种常见方式
  7. 来自Carson_Ho大神的最6的Android事件分发机制详解
  8. 智能机器人助力智慧城市建设
  9. 五行俱全才能成为合格的游戏系统策划!
  10. 提高软件开发工作效率的几种方法