php实现猴子选大王】的更多相关文章

题目描述 猴子选大王,有N只猴子,从1-N进行编号.它们按照编号的顺时针方向,排成一个圆圈,然后从第一只猴子开始报数.第一只猴子报1,以后每只猴子报的数字都是它前面猴子所报数字加1.如果一只猴子报的数字是M,则该猴子出列,下一只猴子重新从1开始报数.剩下的猴子继续排成一个圆圈报数,直到全部的猴子都出列为止.最后一个出列的猴子胜出. 输入格式 The first line is an integer t, indicating the number of test cases. Then ther…
又一次因为一个小错误,POJ上Wrong Answer了无数次..... 在差不多要放弃的时候,发现了这个猥琐的不能再猥琐的bug,改完了提交就AC了,简直无语.... 本题wo采用模拟方法: 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 struct child{ 6 char name[16]; 7 int id; 8 //child(stri…
<?php/** * 猴子选大王 * 17个猴子围成一圈,从某个开始报数1-2-3-1-2-3---报"3"的猴子就被淘汰, * 游戏一直进行到圈内只剩一只猴子它就是猴大王了 * * 编程思路 * 如果猴子被淘汰则unset() 否则array_push() 不停循环 直至数组中只有一个元素 * * 假如5个猴子 每报一个数 数组的值 * * 初始数组 * Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] =&…
猴子选大王问题: 一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1到m的顺序围坐一圈, 从第1开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <…
<一>洗牌算法 /** *洗牌算法washCard *@param $cardNum *@return array */ function washCard($cardNum) { $cards = range(1, $cardNum); for ($i = $cardNum - 1; $i > 0; $i--) { $rnd = rand(0, $i - 1); list($cards[$rnd], $cards[$i]) = array($cards[$i], $cards[$rnd…
原文地址:猴子选大王的c#实现作者:余文 今天被问到了猴子选大王的意思,题目大意就是说有n只猴子围坐成一个圈,按顺时针方向从1到n编号.然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,再从刚出局猴子的下一个位置重新开始报数,如此重复,直至剩下一个猴子,它就是大王. 这个问题明显改用循环链表来做,方便快捷.不过可惜C#里没有循环链表,只有双向链表.当然可以通过继承双向链表来重写节点的next方法,让最后一个节点指向第一个节点,实现自定义的循环链表.不过那样麻烦些,况且,没有循环链表,…
目录 猴子选大王 指针解决 数组压栈 猴子选大王 一群猴子排成一圈,按1,2,...,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王.要求编程模拟此过程,输入m.n,输出最后那个大王的编号. 指针解决 思考了下,发现数组指针最适合解决这个问题,解决方法: function monkeyKing($m,$n){ $arr = range(1,$n); $i = 1; wh…
2032 猴子选大王 Description 有N只猴子,从1~N进行编号.它们按照编号的顺时针方向排成一个圆圈,然后从第一只猴子开始报数.第一只猴子报的第一个数字为1,以后每只猴子报的数字都是它们前面猴子所报数字加1.如果一个猴子报的数字是M,则该猴子出列,下一个猴子重新从1开始报数,直到所有猴子都出列为止,最后一个出列的猴子胜出.你的任务是对于给定猴子数量和报数上限值M,确定出能够被选作大王的猴子的编号. Input 第一行为一个整数N,表示测试数据的组数,接下来的N行中每行包含两个整数,第…
约瑟夫斯问题问题有时候也被描述成猴子选大王问题,题目如下.(最后会贴上约瑟夫问题的来历) 一群猴子排成一圈,按1,2,…,n依次编号. 然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王. 要求编程模拟此过程,输入m.n, 输出最后那个大王的编号. 用程序模拟该过程,代码如下: <?php function monkeyKing($n, $m) { $arr = range(1, $n);…
题目-猴子选大王 (shiyancang.cn) 一.出队顺序Description有M个人,其编号分别为1-M.这M个人按顺序排成一个圈.现在给定一个数N,从第一个人开始依次报数,数到N的人出列,然后又从下一个人开始又从1开始依次报数,数到N的人又出列...如此循环,直到最后一个人出列为止. Input输入只有一行,包括2个整数M(8 <= M <= 15 ),N( 5 <= N <= 32767 ).之间用一个空格分开. Output输出M行,每行一个整数. Sample In…
猴子选大王 这个算法可能是目前我看到的最简洁都算法吧,而且很好理解.它不同于其他算法,其他算法都是判断这个猴子能不能被选中,而他只是找出不能被选中的猴子,然后将其塞到数组模拟的环状队列中,参与下次选. <?php /** * 本题的重点是,如果猴子所在的位置数不能被m整除,那么这个猴子就不会被踢出, * 会参加下一轮的循环 * @param $n int n个猴子参与 * @param $m int 踢出第m个猴子 * @return int */ function getKing(int $n…
Problem Description n只猴子要选大王,选举方法如下:所有猴子按 1,2 ……… n 编号并按照顺序围成一圈,从第 k 个猴子起,由1开始报数,报到m时,该猴子就跳出圈外,下一只猴子再次由1开始报数,如此循环,直到圈内剩下一只猴子时,这只猴子就是大王. Input 猴子总数n,起始报数的猴子编号k,出局数字m.(2=<n<=20,k<=n) Output 猴子的出队序列(不包括猴子大王)和猴子大王的编号. Sample Input 6 5 9 3 3 11 Sample…
题目描述 n只猴子围坐成一个圈,按顺时针方向从1到n编号.然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,再从刚出局猴子的下一个位置重新开始报数,如此重复,直至剩下一个猴子,它就是大王. 输入 输入两个整数n和m,<=m<=n<=. 输出 输出猴王的编号 样例输入 复制 样例输出 复制 #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm…
题目:m只猴子围成一圈报数,报n的猴子自动离开,然后下一位重新从1开始报数,一直循环,最后剩下的那个猴子就是猴大王,写出程序求出最后是大王的那只猴子最初的位置. package learn; import java.util.ArrayList; public class Main {     public static void main(String[] args) {        //创建一个list集合,用来存放猴子对象(为方便推演,暂定猴子总数m为6,每次数到数n为3)      …
一群猴子要选新猴王.新猴王的选择方法是:让n只候选猴子围成一圈,从某位置起顺序编号为1~n号.每只猴子预先设定一个数(或称定数),用最后一只猴子的定数d,从第一只猴子开始报数,报到d的猴子即退出圈子:当某只猴子退出时,就用它的定数决定它后面的第几只猴子将在下次退出.如此不断循环,最后剩下的一只猴子就选为猴王.请输出猴子退出圈子的次序以及当选的猴王编号. 函数接口定义: int KingOfMonkey(int n,linklist *head); 裁判测试程序样例: #include <stdi…
一群猴子排成一圈,按1,2,...,n依次编号. 然后从第1只开始数,数到第m只,把它踢出圈, 从它后面再开始数,再数到第m只,在把它踢出去..., 如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王. 示意图: php代码:…
题目: n个猴子围坐一圈,从第一个猴子开始数,到第m个出列,求最后一个猴子的编号. 分析: 首先想到循环,然后队列,然后堆,所以用数组模拟一个循环的列表,下标为[0-(n-1)],下标+1整除m干掉元素,否则加入队尾,干掉原来的元素, 实现: <?php echo getLastOne(6,2); function getLastOne($n,$m){ $arr=range(1,$n); $i= 0; while(count($arr)!=1){ if(($i+1)%$m==0){ unset(…
function getKing($n,$m) { $arr = range(1,$n); $i = 0; while(count($arr) > 1) { if(($i+1) % $m == 0) unset($arr[$i]); else { array_push($arr,$arr[$i]); unset($arr[$i]); } $i++; } return $arr; }…
http://acm.uestc.edu.cn/#/problem/show/525 猴子选大王 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 有m个猴子围成一圈,按顺时针编号,分别为1到m.现打算从中选出一个大王.经过协商,决定选大王的规则如下:从第一个开始顺时针报数,报到n的猴子出圈,紧接着从下一个又从1顺时针循环报数,...,如此下去,最后剩…
Time Limit: 3 second Memory Limit: 2 MB N只猴子选大王.选举办法如下:从头到尾1.2.3报数,凡报3的退出,余下的从尾到头1.2.3报数,凡报3退出:余下的又从头到尾报数,还是报3的退出:依此类推,当剩下的两只猴子时,取这时报数报1的为王.若想当猴王,请问当初应占据什么位置? 例如:输入猴子最初的只数N:10 输出想当猴王当初应占据的位置:8 Input 输入猴子最初的只数n(n<=200) 第一行输入N的值 Output 输出想当猴王当初应占据的位置 S…
<?php/***function king*@param $m 数到m个数, $n 猴子个数*return int*/function king($m, $n){    //定义数组, 值为猴子个数    $arr = range(1, $n);    //定义计数,数组的下标    $i = 0;    //循环,数组大于1,就是没有得到最后编号,数组不大于1,就是得到最后的编号    while(count($arr)>1){        //判断当前猴子是否出局        if(…
之前用的是循环链表,java刚学,不知道怎么用链表.用个小算法吧 代码: import java.util.Scanner; /** * */ /** * @author john * @约瑟夫循环/MonkeyKing */ public class MonkeyKing { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.pr…
典型的约瑟夫环问题 AC代码: import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * @author CC11001100 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNextInt()){ System.…
<?php/** * [猴子选大王] * @param  [type] $m [猴子数] * @param  [type] $n [出局次数] * @return [type]    [description] *///echo "1";function monkey($m,$n){    //定义一个数组    for($i=1;$i<$m+1;$i++){         $arr[]=$i;    }    //数组里的任意一个数    // $arr=rand(1,…
一.实验内容        1.有5名学生,每名学生有语文.数学和外语3门课的考试成绩.编程统计各学生的总分和平均分以及所有学生各科的平均分.要求成绩在程序中初始化,结果以表格的形式输出.                              2.求任意方阵每行.每列.两对角线上元素之和. 附加题 1.按照以下形式打印杨辉三角(要求输出10行)     杨辉三角形具有如下特点:(1)第一列和对角线上的元素都为1 (2)除第一列和对角线上的元素之外,其他元素的值均为前一行上的同列元素和前一列元…
http://www.verycd.com/topics/2843130/ 第1部分 WEB开发入门篇第1章LAMP网站构建1.[2014]兄弟连高洛峰 PHP教程1.1.1 新版视频形式介绍[已发布,点击下载] 2.[2014]兄弟连高洛峰 PHP教程1.1.2 BS结构软件类型介绍[已发布,点击下载] 3.[2014]兄弟连高洛峰 PHP教程1.1.3 现在是Web2.0的时代[已发布,点击下载] 4.[2014][2014]兄弟连高洛峰 PHP教程1.1.4 Web开发标准[已发布,点击下…
知识库分享系列: [知识库分享系列] 三.Web(高性能Web站点建设) [知识库分享系列] 二..NET(ASP.NET) [知识库分享系列] 一.开篇 分享介绍本篇分享两个知识库节点,分别为“ASP.NET MVC”和“Winfrom”. 知识库——NET 篇 节点标题:ASP.NET MVC 节点数目:79 文件大小:6.8 MB 学习级别:入门级 点击下载 知识库——NET 篇 节点标题:WinForm 节点数目:164 文件大小:3.6 MB 学习级别:入门级 点击下载 附知识库目录:…
[题目描述 Description] N个人坐成一圈玩游戏.一开始我们把所有玩家按顺时针从1到N编号.首先第一回合是玩家1作为庄家.每个回合庄家都会随机(即按相等的概率)从卡牌堆里选择一张卡片,假设卡片上的数字为X,则庄家首先把卡片上的数字向所有玩家展示,然后按顺时针从庄家位置数第X个人将被处决即退出游戏.然后卡片将会被放回卡牌堆里并重新洗牌.被处决的人按顺时针的下一个人将会作为下一轮的庄家.那么经过N-1轮后最后只会剩下一个人,即为本次游戏的胜者.现在你预先知道了总共有M张卡片,也知道每张卡片…
//---我保证所有的代码都已经通过测试---// 类似约瑟夫的问题又称为约瑟夫环.又称“丢手绢问题”. 这个问题来自于这样的一个关于著名犹太历史学家 Josephus传说: 在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止.然而Josephus 和他的朋友并不想遵从.首先从一个人开…
程序片段(01):指针与结构体.c 内容概要:指针与结构体 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> //01.养成编写程序的良好习惯: // 1.模块儿化编程,先进行每个模块儿测试可靠性: // 模块儿化编程:将一个很大的项目分为多个模块儿进行分治处理,针对于每个模块儿进行分而治之 // 如同逐个针对于函数进行功能模块儿的处理,最…