约瑟夫环——围成一圈,定义一个数值K,从任意位置开始计数,每走K步删除当前位置结点,直到剩下最后一个结点,求最后一个结点//单链表结构以及Find函数参见2016-1-213:56发表博客SListNode*Joseph(SListNode*&pos,intK)//约瑟夫环
{
assert(pos);
if(K>0)
{
SListNode*..
分类:
编程语言 时间:
2016-01-05 01:35:22
阅读次数:
386
在罗马人占领乔塔帕特后,39 个犹太人与约瑟夫及他的朋友躲到一个洞中,大家决定宁愿自杀也不要被敌人抓到,于是确定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而约瑟夫和他的朋友并不想死去,那么他应该怎样安排...
分类:
编程语言 时间:
2016-01-03 12:50:40
阅读次数:
225
个人觉得约瑟夫环很有意思 于是存储在这里 希望对一些尚有疑惑的朋友能贡献微薄助力先把问题稍微改变一下,并不影响原意:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号(就我个人来看 这里这样转化 可以省去下面对(f+m)%i==0的讨论)我们知...
分类:
其他好文 时间:
2015-12-18 22:43:00
阅读次数:
274
#include #include typedef struct node{ int key; int num; struct node * next;}node, * plist;//顺序创建int init(plist * L, int all_num){ plist p...
分类:
其他好文 时间:
2015-12-17 00:25:05
阅读次数:
218
node*JosephCircle_OP(node*&phead,size_tdel)//约瑟夫环优化写法{ assert(phead); node*cur=phead,*prev=phead; if(!del)//对参数判断 { printf("errorparameter!"); } while(cur->next!=cur) { for(inti=1;i<del;i++)//先找到删除节点的上一个节点//因为自己占一..
分类:
其他好文 时间:
2015-11-30 02:27:14
阅读次数:
135
本想着用php写些数据结构提升一下,写到链的时候看到约瑟夫环问题,尝试用循环链写了一下约瑟夫环:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;...
分类:
Web程序 时间:
2015-11-12 11:50:44
阅读次数:
181
一,题意: 中文题。二,思路: 1,输入。 2,无限循环1~n~1~n,直到输出n次,再跳出。 3,输出名字,并标记。 1 #include 2 #include 3 using namespace std; 4 int main() { 5 char name[56][16]; 6...
分类:
其他好文 时间:
2015-11-12 09:55:52
阅读次数:
297
写出一个双向的循环链表,弄一个计数器,我定义的是到三的时候,自动删除当前节点,很简单。 package Com;import java.util.Scanner;/* * 约瑟夫环问题,有n个人组成的圈,数到3的那个人出列,下个人继续从一开始 */public class Josephus {...
分类:
编程语言 时间:
2015-11-06 19:16:53
阅读次数:
232
#include #include typedef struct List{ int data; struct List *next;}List;//创建循环单向链表n为长度List *list_create(int n){ List *head, *p; int i;...
分类:
其他好文 时间:
2015-11-03 22:52:25
阅读次数:
192
第18 题:题目:n 个数字(0,1,…,n-1)形成一个圆圈,从数字0 开始,每次从这个圆圈中删除第m 个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m 个数字。求出在这个圆圈中剩下的最后一个数字约瑟夫环问题,第一思路是拿双向链表解决...
分类:
其他好文 时间:
2015-10-25 00:55:14
阅读次数:
255