约瑟夫环
来源:互联网 发布:淘宝登录界面刷不出来 编辑:程序博客网 时间:2024/06/11 18:32
问题描述:
已知n个人(编号1~n)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,最后一个出列的人的编号?
解法一:
模拟此过程,依次出队
https://www.zhihu.com/question/20065611
解法二:
建立一种映射关系
n个人时,出去一人后,重新编号,转化为n-1人的情况
[f(n-1) + m] % n = f(n)
依上述关系,得到如下递归函数
int Josephus (int n, int m){ int last = 1; //只有一个人的情况 for (int i = 2; i <= n; i++) { last = (last + m) % i; if (last == 0) //特殊情况 last = i; } return last;} //亦或改变编号,从0开始,加一点小改动即可
阅读全文
1 0
- 约瑟夫问题、约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 基础练习 BASIC-10 十进制转十六进制
- 第四周项目二_建设“单链表”算法库
- MT 191 Request for Payment of Charges, Interest and Other Expenses收费、利息和其他费用支付请求 参考Common Group Mess
- js中文字符的过滤问题
- Dubbo超时重试机制带来的数据重复问题
- 约瑟夫环
- 51nod-1079 中国剩余定理
- 服务器发布脚本
- 仿jquery的几行代码
- 【Fiddler】1代理
- MT n90 Advice of Charges, Interest and Other Adjustments收费、利息和其他调整通知
- android多线程asyncTask与Handler用法
- C++的& 与 *区别(从递归上解释)
- spring boot分页组件