约瑟夫环问题的详细解答
来源:互联网 发布:java.io.file jar包 编辑:程序博客网 时间:2024/04/28 19:06
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3,...,n分别表示)围坐在一张圆桌周围,从编号为k的人开始报数,数到m的那个人出列,他的下一个人从1开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,知道圆桌周围的人全部出列。
分析:首先,标识这n个人,第一种标识方法是从0开始讲n个人标识为0~n-1;第二种方法是从1开始标识,将这n个人标识为1~n.
第一种情况下从0开始编号,编号为k的从环中移除之后,下一个要移除的是(k+m)%n(假设当前还有n个人在环中)。
第二种情况下从1开始编号,编号为k的从环中移除之后,下一个要移除的是(k+m-1)%n+1;
若从x编号开始怎要移除的编号的通式是(k+m-x)%n+x;
#include<iostream>using namespace std;//约瑟夫环利用数组实现int main(){const int n=8;int m=4;int a[n];for(int j=0;j<n;j++)a[j]=j+1;int k=1;int i=-1;while(1){for(int j=0;j<m;){i=(i+1)%n;if(a[i]!=0)j++;}if(k==n)break;cout<<a[i]<<",";a[i]=0;k++;}cout<<a[i]<<endl;return 0;}
0 0
- 约瑟夫环问题的详细解答
- 解答约瑟夫环问题的几个方法
- 约瑟夫循环问题的解答
- 约瑟夫环问题(1)----Wikipedia上的原文解答
- 关于约瑟夫问题的数学解答。
- 约瑟夫问题的解答(循环单链表)
- 约瑟夫环问题两种情况解答
- java解答约瑟夫问题
- 最简化约瑟夫环问题的递归算法详细解析
- 约瑟夫环问题求解--程序+详细注解
- //全排列问题的详细解答
- 约瑟夫环的问题
- 约瑟夫环的问题
- 约瑟夫环的问题
- 约瑟夫环的问题
- 约瑟夫环的问题
- 约瑟夫环的问题
- 约瑟夫环的问题
- html5的自定义data-*属性与jquery的data()方法的使用
- 【HDU 4921】Map
- Hadoop中解决跨split问题
- IOS用openurl打开设置选项 ===== 有的可能已被苹果官方禁用
- Android 实现多个输入框的对话框
- 约瑟夫环问题的详细解答
- linux oops产生过程之dump_backtrace
- 修改主机名
- 统计难题 (字典树)
- android webview的jsinterface有时候不被识别的原因
- IE6,IE7,IE8下报JS错误:expected identifier, string or number的原因及解决办法
- 使用RAII技术来管理资源
- Android-通讯录:添加联系人
- iOS_远程推送详解