约瑟夫环问题
来源:互联网 发布:怎么搜人名找域名 编辑:程序博客网 时间:2024/06/08 20:57
约瑟夫环运作如下:
①n个人围在一起坐成环状
②从编号1开始报数
③数到某个数m的时候,此人出列,下一个人重新报数
④一直循环,直到留下最后一个人k,约瑟夫环结束
例如:8个人围成一圈,从序号为1的人开始报数,报到3的出列,,下个人重新报数,求最后剩下的人编号
最初状态:
1 2 #3 4 5 6 *7 8
↓
6 7 1 2 #3 *4 5 ----- 问题被简化为7个人围成一圈,但同样报到3的人出列
↓
#3 4 5 6 *1 2 ----- 问题继续被简化为6个人围成一圈(原题可缩小规模)
…… ↓
显然当n = n-1时,通过公式k = (k+m)%n把k变回刚好就是n个人情况的解
(但这时k可能为0,所以要假设这些人序号从0开始,最后答案加1)
↓
一直递推,直到n = 2(k通过公式逆向推回)
#include<stdio.h>int main(void){int n, m, i, k;scanf("%d%d", &n, &m);k = 0;for(i=2;i<=n;i++)k = (k+m)%i;k += 1;printf("%d\n", k);return 0;}
阅读全文
1 0
- 约瑟夫问题、约瑟夫环
- Josephus约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题(Josephus)
- 约瑟夫环问题--java
- 约瑟夫环问题 Josephus
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 求解约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 解决hadoop集群环境datanode无法启动的问题
- Ajax
- Shader水涟漪效果
- AndroidRecyclerviewGridLayoutManager列间距
- 神经网络
- 约瑟夫环问题
- Unity Shader学习笔记:纹理动画
- 第十次多校联合hdu6178Monkeys(输入输出挂)
- C++中尽量使用C++提供的类型转换(2)---《More Effective C++》
- Bellman-Ford-解决负权边—C
- C-volatile,const
- ggplot2之Layer—— geoms(一)
- 14.路由表中存的是什么
- log4j2的使用详解(1)