算法:约瑟夫环问题 【写在前面】 由于本人天生驽钝,所写代码和描述可能不堪入目,高手请移步。但是我一直在努力记录一下有用的知识点,给自己给朋友用,只是希望对大家有帮助。 【问题描述】 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从第一 ...
分类:
编程语言 时间:
2016-10-02 00:34:05
阅读次数:
140
恢复内容开始 问题描述:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列,求最后出列的人的原始编号。 ...
分类:
其他好文 时间:
2016-09-29 07:41:32
阅读次数:
126
/* 总结:就是建立一个循环单链表,再按循环取余删除节点: 注意:1.未给指针变量s分配动态内存时,让其等于别的分配内存的指针(q)相当于 把 s指向其内存,并不能建立链接。 2.此链表带头节点 遇到问题 :1.在选择人的时候遇到了阻碍(不知如何选) 2.设置头节点,循环(难点) */#includ ...
分类:
其他好文 时间:
2016-09-14 01:56:18
阅读次数:
160
约瑟夫环比较经典了 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 测试过的完整实现代码: ...
分类:
编程语言 时间:
2016-09-11 18:42:00
阅读次数:
161
问题:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的 ...
分类:
其他好文 时间:
2016-09-02 13:17:21
阅读次数:
136
题目描述 约瑟夫问题是一个非常著名的趣题,即由n个人坐成一圈,按顺时针由1开始给他们编号。然后由第一个人开始报数,数到m的人出局。现在需要求的是最后一个出局的人的编号。 给定两个int n和m,代表游戏的人数。请返回最后一个出局的人的编号。保证n和m小于等于1000。 测试样例: 5 3 返回:4 ...
分类:
其他好文 时间:
2016-08-26 13:40:11
阅读次数:
250
约瑟夫环问题: 0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字,求出这个圆圈里剩下的最后一个数字。 这里给出以下几种解法, 1.用队列模拟 每次将前m-1个元素出队,出队元素放入队列的末尾,再循环即可,这种方法时间复杂度为O(mn)(每找出一个数字需要m步运 ...
分类:
其他好文 时间:
2016-08-19 00:51:42
阅读次数:
162
问题链接:UVA133 The Dole Queue。可以说是双向约瑟夫环问题,用C语言编写程序。
问题简述:输入n、k和m,n为人数,逆时针序号为1~n,A从1按逆时针数到第k个人停下来,B从n开始按顺时针数到第m个人停下来,输出被数到的人,并且让这些人出局。输出出局人的序号(输出格式参见原题说明)。
解题思路:用模拟法来解决。
程序中,带参数的宏定义next()用于计算下一个位置。函...
分类:
其他好文 时间:
2016-08-11 11:29:16
阅读次数:
153
约瑟夫环:用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至最后一个元素并输出该元素的值。 一、循环链表:建立一个有N个元素的循环链表,然后从链表头开始遍历并记数,如果计数值为M,则输出并删除该元素,继续循环(其实是N-1次),当当前元素与下一元素相同时退出循环。 二、取余操作:令 ...
分类:
其他好文 时间:
2016-07-24 22:19:30
阅读次数:
200