約瑟夫斯問題問題有時候也被描述成猴子選大王問題,題目如下.(最后會貼上約瑟夫問題的來歷) 一群猴子排成一圈,按1,2,…,n依次編號. 然后從第1只開始數,數到第m只,把它踢出圈,從它后面再開始數,再數到第m只,在把它踢出去…,如此不停的進行下去,直到最后只剩下一只猴子為止,那只猴子就叫做大王. 要求編程模擬此過程,輸入m.n, 輸出最后那個大王的編號. 用程序模擬該過程,代碼如下: <?php function monkeyKing($n, $m) { $arr = range(1, $n);…
猴子選大王問題: 一堆猴子都有編號,編號是1,2,3 ...m ,這群猴子(m個)按照1到m的順序圍坐一圈, 從第1開始數,每數到第n個,該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最后一只猴子,則該猴子為大王.
又一次因為一個小錯誤,POJ上Wrong Answer了無數次..... 在差不多要放棄的時候,發現了這個猥瑣的不能再猥瑣的bug,改完了提交就AC了,簡直無語.... 本題wo采用模擬方法: 1 #include 2 #include 3 #include 4 using namespace std; 5 struct child{ 6 char name[16]; 7 int id; 8 //child(stri…
題目描述 猴子選大王,有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…