以下摘自:http://blog.163.com/soonhuisky@126/blog/static/157591739201321341221179/ http://blog.csdn.net/haoni123321/article/details/7178748 为了讨论方便,先把问题稍微改变 ...
分类:
其他好文 时间:
2017-04-05 01:28:24
阅读次数:
216
首先让我们引入一个公式:f(n,k)=(f(n-1,k)+k)%n 约瑟夫环 这篇文章讲得很好。。 我稍微谈谈自己的看法。 这其实就是一个递推的过程: 首先f(n, k)表示的是n个人,数到k的人退出游戏;然后这个公式 f(n-1,k)=f(n,k)-k>=0?f(n,k)-k:f(n,k)-k+n ...
分类:
其他好文 时间:
2017-04-02 13:52:06
阅读次数:
156
约瑟夫环问题: package com.zb.test; public class Yuesefu { public static void main(String[] args) { //500个人数组 boolean[] b = new boolean[500]; for(int i = 0;i ...
分类:
编程语言 时间:
2017-03-31 00:38:40
阅读次数:
144
约瑟夫生者死者游戏:30个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分;因此船长告诉大家,只有将全船一半的旅客投入海中,其余人才能幸免遇难。无奈,大家只得同意这种办法,并议定30个人围成一圈,由第一个人开始,依次报数,数到第9个人,就把他投入大海中,然后从他的下一个人开始从1数起,数到第9个 ...
分类:
编程语言 时间:
2017-03-30 23:34:55
阅读次数:
698
#1296 : 数论三·约瑟夫问题 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho的班级正在进行班长的选举,他们决定通过一种特殊的方式来选择班长。 首先N个候选人围成一个圈,依次编号为0..N-1。然后随机抽选一个数K,并0号候选人开始按从1到K的顺序依 ...
分类:
其他好文 时间:
2017-03-29 12:34:08
阅读次数:
146
约瑟夫问题 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1073 范围:10^6 http://noi.openjudge.cn/ch0302/1748/ 范围:30 三种方法分别得分:链接1:0 92 100 链接2: ...
分类:
其他好文 时间:
2017-03-28 10:56:52
阅读次数:
159
提示:用环形链表实现 对于这个题目其实就是用c语言的循环链表实现一个约瑟夫环。我们可以定义一个循环链表,将这n个人加入到链表中,然后定义三个节点指针在链表上循环,移动跨度为3,利用链表的循环功能每次删除第三个节点,这边要注意的一个问题就是你定义的是3个指针,且在循环中他们彼此也都是有 ->next关 ...
分类:
编程语言 时间:
2017-03-27 17:48:44
阅读次数:
195
1、随机化数组问题就是对已有的数组进行乱序排列,使之随机的,毫无规律;(1)、代码实现#include<stdio.h>
#include<time.h>
#include<stdlib.h>
voidshowArray(int*a,intcount);
voidrandom_1(int*a,intcount);
voidrandom_1(int*a,intcount){
inti;
inttm..
分类:
编程语言 时间:
2017-03-24 10:56:39
阅读次数:
176
问题描述:已知n个人,分别以编号1,2,3,...n表示,围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列,求最后一个出列人的编号。 一般性递归算法思考:n个人围成一圈,从k开始以m为步长报数 ...
分类:
其他好文 时间:
2017-03-17 19:47:10
阅读次数:
144
N个人围成一圈顺序编号,从1号开始按1、2、3顺序报数,报3者退出圈外,其余的人再从1、2、3开始报数,报3的人再退出圈外,依次类推。请按退出顺序输出每个退出人的原序号。要求使用环行链表编程。 模拟题。 ...
分类:
其他好文 时间:
2017-03-06 21:04:03
阅读次数:
146