猴子选大王问题: 一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1到m的顺序围坐一圈, 从第1开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <…
题目:m只猴子围成一圈报数,报n的猴子自动离开,然后下一位重新从1开始报数,一直循环,最后剩下的那个猴子就是猴大王,写出程序求出最后是大王的那只猴子最初的位置. package learn; import java.util.ArrayList; public class Main {     public static void main(String[] args) {        //创建一个list集合,用来存放猴子对象(为方便推演,暂定猴子总数m为6,每次数到数n为3)      …
题目: 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(…
又一次因为一个小错误,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…
约瑟夫斯问题问题有时候也被描述成猴子选大王问题,题目如下.(最后会贴上约瑟夫问题的来历) 一群猴子排成一圈,按1,2,…,n依次编号. 然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王. 要求编程模拟此过程,输入m.n, 输出最后那个大王的编号. 用程序模拟该过程,代码如下: <?php function monkeyKing($n, $m) { $arr = range(1, $n);…
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顺时针循环报数,...,如此下去,最后剩…
题目-猴子选大王 (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…
题目描述 猴子选大王,有N只猴子,从1-N进行编号.它们按照编号的顺时针方向,排成一个圆圈,然后从第一只猴子开始报数.第一只猴子报1,以后每只猴子报的数字都是它前面猴子所报数字加1.如果一只猴子报的数字是M,则该猴子出列,下一只猴子重新从1开始报数.剩下的猴子继续排成一个圆圈报数,直到全部的猴子都出列为止.最后一个出列的猴子胜出. 输入格式 The first line is an integer t, indicating the number of test cases. Then ther…
<?php/** * 猴子选大王 * 17个猴子围成一圈,从某个开始报数1-2-3-1-2-3---报"3"的猴子就被淘汰, * 游戏一直进行到圈内只剩一只猴子它就是猴大王了 * * 编程思路 * 如果猴子被淘汰则unset() 否则array_push() 不停循环 直至数组中只有一个元素 * * 假如5个猴子 每报一个数 数组的值 * * 初始数组 * Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] =&…
<一>洗牌算法 /** *洗牌算法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…