约瑟夫环问题
来源:互联网 发布:国家数据统计数据库 编辑:程序博客网 时间:2024/06/07 01:14
设有n个人,从0..n-1,从0号开始,每k个杀死,第一次杀死k-1号,问最后死的是谁。
设f(n,k)表示最后死的那个人,则f(1,k)=0,只有一个人时,最后死的是0号,又有f(n,k)=(f(n-1,k)+k)%n,杀死一个人后,重新排序,一一对应,注意n是可变的。
递归版本:
private static int recursiveJoseph(int n, int k) { if (n == 1) { return 0; } return (recursiveJoseph(n - 1, k) + k) % n; }
动态规划非递归版本:
private static int joseph(int n, int k) { int[] dp = new int[n]; for (int i = 1; i < n; i++) { dp[i] = (dp[i - 1] + k) % (i + 1); } return dp[n - 1]; }
0 0
- 约瑟夫问题、约瑟夫环
- Josephus约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题(Josephus)
- 约瑟夫环问题--java
- 约瑟夫环问题 Josephus
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 求解约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- rm命令改写
- Flume学习笔记之初识(二)
- 解决 Code::Blocks之It seems that this file has not been built yet.
- vuejs使用指南(一)
- 自动远程拷贝expect脚本
- 约瑟夫环问题
- tomcat服务器启动不起来
- Trafodion Bulk Load 初试
- Cocoa pods的安装使用以及过程中可能会遇到问题的汇总
- 详细的K-means聚类
- Java二分法的使用案例
- 201610月阅读书藉
- 去除MyEclipse频繁弹出的Update Progress窗口
- DevExpress破解版下载