算法学习笔记之约瑟夫环问题
来源:互联网 发布:java 制作图片 编辑:程序博客网 时间:2024/05/21 19:25
问题:
假设下标从0开始,0,1,2 .. m-1共m个人,从1开始报数,报到k则此人从环出退出,问最后剩下的一个人的编号是多少?
我的理解:
设f(m,k,i)为m个人的环,报数为k,第i个人出环的编号,m个人的环第i个出来的人就相当于m-1个人的环第i-1个出来的人,不过这个序号是相当于原来m个人的序号。但注意的是m个人的环第一个出来的人序号要减一。
通俗的讲就是:假设10个人的环,报数为3的人出来,那么10个人的环第一个出来的人的序号为2,而10个人的环第二次出来的人相当于9个人第一次出来的人。
程序:
//m:人数//k:报数//i:第i个出来的public static int fun(int m,int k,int i) { if (i == 1) { return (m+k-1)%m; }else { //取余是因为是环 return (fun(m-1, k, i-1)+k)%m; } }
结果:
1 0
- 算法学习笔记之约瑟夫环问题
- 算法学习之约瑟夫环问题
- 算法之约瑟夫问题
- 赌博算法之约瑟夫环问题(JAVA)
- 经典算法之约瑟夫环问题
- 数据结构与算法学习笔记04(约瑟夫问题)
- 约瑟夫环算法问题
- 算法----约瑟夫环问题
- 算法 约瑟夫环问题
- [算法]约瑟夫环问题
- (算法)约瑟夫环问题
- 菜鸟学习数据结构算法之路之约瑟夫环问题(循环链表)
- 算法学习八----约瑟夫问题
- 经典算法之约瑟夫问题
- 算法之约瑟夫环
- 算法之约瑟夫环
- 经典算法问题之约瑟夫问题
- 约瑟夫环问题算法集锦
- POJ 1364King (差分约束 + spfa (bellman) 判环)
- 深入Java单例模式
- UML六种关系
- 天梯-排序
- UVA 11475 Extend to Palindrome (kmp || manacher || 后缀数组)
- 算法学习笔记之约瑟夫环问题
- Android学习笔记3:使用日志工具
- 《剑指offer》01 赋值运算符函数
- Android基础:动画三:属性动画
- sicily 1047(数学)
- ZOJ - 3875 Lunch Time (模拟)水
- c++写windows服务程序
- Android学习笔记4:探究活动1
- Codeforces Round 335 (Div 2) D. Lazy Student【构造 脑洞 最小生成树】