算法-约瑟夫环问题(丢手绢问题)
1、一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。
解法1(模拟方法):
解法2(递推方法):
以最大6只,每次踢出第3只为例,通过每次获得的新序号可以反向推导如下结论:
1 2 3 4 5 6 (3+3)%6=0;
4 5 6 1 2 (0+3)%5=3;
1 2 4 5 (1+3)%4=0;
5 1 2 (1+3)%3=1;
5 1 (0+3)%2=1;
1 1%1=0; //最后一只的取余值为0 以此向上倒推
公式如下:f(n)=(k+f(n-1))%n;
解法3(递归方法):
算法-约瑟夫环问题(丢手绢问题)相关推荐
- 约瑟夫环(丢手绢问题)
文章目录 问题描述 思路 代码实现 问题描述 有 1~N 个数字,从 1~m 依次报数,数到 m 的数字要被删掉,求最后剩下的数字是? 思路 第一次报数 第二次报数 1 n-m+1 2 n-m+2 - ...
- Java数据结构单向循环链表实现约瑟夫问题(丢手绢)
环形链表 实例:使用环形链表解决约瑟夫问题(丢手绢) 构建一个单向环形链表思路 1)先创建第一个节点,让first指向该节点,并形成环形 2)加入环形链表 遍历环形链表 1)先让一个辅助指 ...
- vivo2020校招笔试题[编程题]报数(约瑟夫问题又称丢手绢问题)-java解决
今年7月份vivo迎来了新入职的大学生,现在需要为每个新同事分配一个工号.人力资源部同事小v设计了一个方法为每个人进行排序并分配最终的工号,具体规则是: 将N(N<10000)个人排成一排,从第 ...
- 数据结构与算法--我们来玩丢手绢(约瑟夫环问题)
我们来玩丢手绢 昨天我们打扑克,今天我们丢手绢 丢手绢我们都知道这个游戏,他的由来由约瑟夫 (Josephus)提出来的 据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,3 ...
- 毕业生求职必会算法 约瑟夫环问题
写在前面: 我是 「扬帆向海」,这个昵称来源于我的名字以及女朋友的名字.我热爱技术.热爱开源.热爱编程.技术是开源的.知识是共享的. 这博客是对自己学习的一点点总结及记录,如果您对 Java.算法 感 ...
- 严蔚敏算法约瑟夫环_极客算法训练笔记(三),链表详细图解,别再逃避了朋友...
目录 缓存引爆链表 链表 单链表 双向链表 循环链表 双向循环链表 LinkedHashMap实现LRU缓存,源码解析(JDK1.8) 算法 爬楼梯 算法 反转链表 算法 链表环检测 缓存引爆链表 存 ...
- 程序员的算法趣题Q58: 丢手绢游戏中的总移动距离
1. 问题描述 2. 解题分析 搜索最短距离,图搜索问题中的最短距离问题,可以用广度优先搜索策略来解决. 2.1 搜索树示意图 搜索树示意图如下: 2.2 算法流程 用一维数组表示当前状态,但是要注意 ...
- python约瑟夫环问题给十个学生编号报到3者出列_趣味算法--约瑟夫环问题(示例代码)...
问题描述 已知n个人(以编号1,2,3,...,n分别表示)围坐在一张圆桌上.指定编号为k的人开始从1报数,数到m的那个人出列:出列那个人的下一位又从1开始报数,数到m的那个人出列:以此规则重复下去, ...
- 算法-约瑟夫环问题——python实现
Hello NanFeng 遇到了一个有点意思的题: 一艘船上有30个人,现在因为超载需要15人下船,决策者采用了一种很特殊的抽签方式 1.先让人们排成一列,按照顺序给每个人编号 2.依次从1开始报数 ...
最新文章
- Leetcode-探索 | 旋转数组
- 图像滤镜艺术---微软自拍APP滤镜实现合集DEMO
- jvm中的年轻代 老年代 持久代 gc ----------转载
- 什么是 SAP Spartacus FacadeFactoryService 中的 Resolver
- html5群组选择器,css选择器
- Jinja2模板与模板继承
- 【Tensorflow】TF中的字符串tf.string
- select、poll和epoll
- fastica的matlab工具箱,FastICa matlab工具箱使用说明
- 十.jmeter性能测试基础实践(2)
- 软件配置管理(SCM)介绍
- I2C总线协议详解(特点、通信过程、典型I2C时序)
- 【Linux驱动开发】串口
- Mac中在Matlab中安装Mosek
- 微软提供的无限次延长Vista激活
- 怎么用几何画板制作图形平移和旋转
- yum和repo详细解析
- python智能语音识别_Python 智能语音识别-Speech搭建和使用
- NVIDIA GeForce 940MX win10 python3.6 anaconda cudn9.0 cudnn 7.0 tensorflow-gpu 1.12 安装
- 如何实现7*24小时慢直播应用?