约瑟夫环问题(丢手绢问题)
孩子们的游戏(圆圈中最后剩下的数)_牛客题霸_牛客网
假设现在有9个孩子,给他们进行编号为0-8,让他们从1开始报数,每当有人报到3的时候就会出局,即n=9,m=3.
在进行第一次报数的时候编号为0的孩子先报,所以编号为2的孩子报的数就是3,因此编号为2的孩子出局,然后编号为3的孩子重新开始报数。
这里我们可以用%来进行扩充,如1可以看做10%9的结果。
通过对比f(9,3)第一次报完数后的结果与f(8,3)之间的关系,我们可以发现f(9,3)=( f ( (8,3)+3) )%9,因此我们可以将f(9,3)的结果进行替换。
同理可得f(8,3)= ( f ( (7,3)+3) )%8
f(7,3) = ( f ( (6,3)+3) )%7
......
f(2,3) = ( f ( (1,3)+3) )%2
f(1,3) = 0
因此通过一步步的替换我们就可以找到哪个孩子获得了礼物。
int find(int n,int m)
{if(n==1)return 0;int f=find(n-1,m);return (f+m)%n;
}int LastRemaining_Solution(int n, int m ) {// write code hereif(n==0||m==0)return -1;return find(n,m);
}
约瑟夫环问题(丢手绢问题)相关推荐
- 约瑟夫环(丢手绢问题)
文章目录 问题描述 思路 代码实现 问题描述 有 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)个人排成一排,从第 ...
- C语言处理约瑟夫问题(丢手绢)
(部分经验援引自其他人) 问题描述: 在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆 ...
- Java中使用链表解决约瑟夫问题(丢手绢问题)
文章目录 文章目录 前言 一.思路分析 二.代码实现 1.Chird类建立 2.链表创建 3.功能实现 总结 其他解决方式: Java中使用list解决约瑟夫问题https://blog.csdn.n ...
- Java中使用list解决约瑟夫问题(丢手绢问题)
文章目录 文章目录 前言 一.思路分析 二.代码实现 总结 其他解决方式: Java中使用环形链表解决约瑟夫问题https://blog.csdn.net/qq_35813811/article/de ...
- 数据结构与算法--我们来玩丢手绢(约瑟夫环问题)
我们来玩丢手绢 昨天我们打扑克,今天我们丢手绢 丢手绢我们都知道这个游戏,他的由来由约瑟夫 (Josephus)提出来的 据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,3 ...
- C++约瑟夫环(又称丢手绢)解决---最简单的理解
首先约瑟夫环的定义: 在一间房间总共有n个人(下标0-n-1),只能有最后一个人活命. 按照如下规则去排除人: 所有人围成一圈, 从0开始 顺时针报数, 每次报到m的人将被排除掉 被排除掉的人将从房间 ...
- 约瑟夫环 -- 丢手绢问题
问题描述 约瑟夫环问题,也称为"丢手绢问题". 编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3-这样依次报),数到 m 的 士兵 ...
- 1875 丢手绢 约瑟夫环变形 枚举
1875 丢手绢 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 六一儿童节到了,小朋友们在玩丢手绢的游戏.总共有C个小朋友,编号从1到C,他们站成一个 ...
最新文章
- luogu P3808 【模板】AC自动机(简单版)
- 关于Public key for *.rpm is not installed 的解决方法
- 面对不可避免的故障,我们造了一个“上帝视角”的控制台
- 科大星云诗社动态20210820
- GYM101002C - Greetings!
- 华为照片在哪个文件夹_原来华为手机还能这样清理垃圾,怪不得你的手机可以多用5年...
- Python - 排序( 插入, 冒泡, 快速, 二分 )
- java程序中默认包含的是_在编写 Java 程序时,如果不为类的成员变量定义初始值, Java 会给出它们的默认值,下列说法中不正确的一个是( )。...
- “Google只认钱!机器学习20年没进步”,CMU学者炮轰AI第一大厂
- 用C# Regex类实现的一些常规输入判断
- LINUX开机,直接进入终端,如何加载硬盘
- Kerberos下pyhive使用
- mysql analyze_MySQL数据库执行analyze采集信息
- Eclipse LDT 安装
- 【转】如何使html5语义化标签兼容ie
- 微信小程序在线知识答题有奖多开版源码
- 全国高校恋爱关系图谱:北大受宠爱,浙大最孤独
- 条形码录入测试软件,条码管理:商品条码录入
- PyCharm 字母大小写切换
- php开发微信jssdk录音功能,微信 JS-SDK 录音功能开发
热门文章
- 终于搞定美团app人气榜提取的数据分类工作
- mysql5.7 yum 密码_yum 安装 Mysql 5.7,忘记密码解决方案
- 【论文夜读】陈天琦神作Neural Ordinary Differential Equations(NuerIPS2018最佳paper)
- typescript egg mysql_Egg.js egg-mysql 连接MySQL 报 AppWorkerDiedError 错误
- 程序员狂怒:薪水被应届生倒挂了,很不爽,天王老子也别想留住我!
- 盘点世界杯 之 世界杯十大震惊榜
- 我英语不好,能学会编程吗?你觉得呢 ?
- 英语专业有计算机课程吗,英语专业转行学计算机能学好吗
- 卧兔观察:决心有了,就让拼多多飞一会儿吧
- WordPress登录注册系统的优化