约瑟夫环公式

csdn
 
定义f(N,M)表示一共N个人,编号为0 ~ N - 1,每次报数为M的人被踢出去,得到的最后的优胜者(只剩下一个人)的标号是多少
则有递推公式:
f(N,M)=(f(N1,M)+M)
 
code:

//先把下标映射成0 ~ N - 1
int p = 0; //只剩下一个人的优胜者下标
for(int i = 2; i <= N; i ++) {
  p = (p + M) % i;
}
return p + 1;  //如果题目中下标是1 ~ N,这里要返回映射值
posted @   兮何其  阅读(106)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示