问题:

  一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n,输出最后那个大王的编号

/** 一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,* 在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。* 要求编程模拟此过程,输入m、n,输出最后那个大王的编号* @param int $n 猴子个数* @param int $m* */
function monkyKing($n, $m)
{//构建保存猴子的数组$arr = range(1, $n);//设置数组指针$i = 0;while (count($arr) != 1) {if (($i + 1) % $m == 0) {unset($arr[$i]);} else {$arr[] = $arr[$i];unset($arr[$i]);}$i++;}return $arr[$i];
}echo monkyKing(5, 2);

转载于:https://www.cnblogs.com/jxl1996/p/10183918.html

约瑟夫环问题:猴子选大王相关推荐

  1. java线性表猴子选大王,线性表应用:约瑟夫问题(猴子选大王)(循环链表,数组,递归)...

    1 描述:一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报 ...

  2. 约瑟夫环-猴子选大王(变型题)

    约瑟夫环-猴子选大王(变型题) 接着上篇猴子选大王继续展开,上篇讲的是有m个猴子,从第一个猴子开始报数,当报到n时,第n个猴子出去,从n+1猴子开始,从1继续报数. 这篇我们来说,从任意猴子k的位置开 ...

  3. 约瑟夫环 猴子选大王

    <? /*** 猴子选大王:一群猴子排成一圈,按1,2,-,n依次编号.* 然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去-,* 如此不停的进行下去,直 ...

  4. 约瑟夫环问题之猴子选大王

    猴子选大王的描述为:n只猴子围成一圈,顺时针方向从1到n编号.之后从1号开始沿顺时针方向让猴子从1,2,...,m依次报数,凡是报到m的猴子,都让其出圈,取消候选资格.然后不停的按顺时针方向报数,让报 ...

  5. Python 猴子选大王(约瑟夫环)算法

    def KingElect(totalNum, startNum, intervalNum):'''猴子选大王totalNum:猴子总数tartNum:开始序号intervalNum:间隔数'''mo ...

  6. 约瑟夫环问题的学习和应用:猴子选大王(增强版)

    猴子选大王(增强版) 一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到M,凡报到M的猴子即退出圈子,接着又从紧邻的下一只猴子 ...

  7. 猴子选大王--约瑟夫问题浅析

    猴子选大王--约瑟夫问题浅析 猴子选大王问题是一个十分经典的算法问题,这个问题是这样的:一堆猴子都有编号,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N ...

  8. 蓝桥杯 - 猴子选大王 (约瑟夫问题)

    标题:猴子选大王 一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始 ...

  9. 猴子选大王,约瑟夫问题

    package wuta;import java.util.Scanner;public class monkeyking {public static void main(String[] args ...

  10. c语言-猴子选大王-约瑟夫问题(队列,链表,数组)

    猴子选大王 前言:初读此题,根据题意,顺势想到了用刚学的数据结构中的循环队列及循环链表,便想借此来熟练一下新学知识. 题目描述: 一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位 ...

最新文章

  1. 2022-2028年中国污泥处理处置行业深度调研及投资前景预测报告
  2. Mysql进阶(4)——基于MHA的MySQL高可用架构
  3. 对KVC和KVO的理解
  4. weblogic清除缓存
  5. 吴恩达深度学习 —— 2.16 关于python/numpy向量的说明
  6. 芯片领域再起风波 国内IC行业挑战来临
  7. 囧。。。不知不觉破解了IDMan。。。木有注意最后一步咋破的。。。
  8. 杰奇小说2.3独家定制版淡绿唯美模板自动采集关关采集器带WAP
  9. telnet 回显 linux,telnet实现本地回显
  10. Sublime text3 Version 3... 3207 激活码许可证(2019-07-19亲测有效)
  11. 尚硅谷数据结构与算法(Java)--14--插入排序
  12. 小srf的游戏(单调队列+dp)
  13. burg算法 matlab,基于burg算法的谱估计研究及其matlab实现.doc
  14. Windows XP中手动安装驱动程序的方法
  15. Python 小试牛刀
  16. Js两数加起来=目标数的下标,返回的下标按升序排列
  17. PRML笔记:1-介绍
  18. ultraiso制作iso镜像文件_移动硬盘制作启动盘安装win7系统
  19. java将map转json字符串
  20. 【已解决】python永久换源配置失败

热门文章

  1. 高斯正反算 java_高斯投影正反算的代码
  2. layui table 复选框数据_Python操作三大数据库 Mysql
  3. ie中加入html代码,IE中HTML编辑器的修改与使用
  4. char类型怎么输入 c语言_C语言的标准 “输入输出”!今天是你学C语言的第几天?...
  5. avs3 ts格式封装 标准_Go time.RFC3339 时间格式化
  6. linux tcp文件分包_畅谈linux下TCP(下)
  7. 衡阳师范计算机专业分数线,衡阳师范学院计算机科学与技术专业2017年在河南理科高考录取最低分数线...
  8. 接口做的好怎么形容_大连SIEMENS西门子M174接口plc模块
  9. 机器学习——Gradient Boost Decision Tree(Treelink)
  10. 美国算法交易的影响和启示