国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP實現的猴王算法(猴子選大王)示例

2024-05-05 00:03:28
字體:
來源:轉載
供稿:網友

本文實例講述了PHP實現的猴王算法。分享給大家供大家參考,具體如下:

<?phpfunction getKingMokey($n, $m){    $monkey[0] = 0;    //將1-n只猴子順序編號 入數組中    for($i= 1; $i<= $n; $i++)    {        $monkey[$i] = $i;    }    $len = count($monkey);    //循環遍歷數組元素(猴子編號)    for($i= 0; $i< $len; $i= $i)    {       $num = 0;       foreach($monkey as $key => $value)       {        if($value == 0) continue;        $num++;        $values = $value;       }       //若只剩一只猴子 則輸出該猴子編號(數組元素值) 并退出循環       if($num == 1)       {          echo $values;          exit;       }       //將第$i只猴子踢出隊伍(相應數組位置元素值設為0)       $monkey[$i] = 0;       //打印該猴子位置       echo $i."";       //設置計數器       for($j= 1; $j<= $m; $j++)       {          //猴子編號加一,遍歷下一只猴子          $i++;          //若該猴子未被踢出隊伍,獲取下一只猴子編號          if($monkey[$i] > 0) continue;          //若元素值為0,則猴子已被踢出隊伍,進而循環取下一只猴子編號          if($monkey[$i] == 0)          {              //取下一只猴子編號              for($k= $i; $k< $len; $k++)              {                  //值為0,編號加1                  if($monkey[$k] == 0) $i++;                  //否則,編號已取得,退出                  if($monkey[$k] > 0) break;              }          }          //若編號大于猴子個數,則從第0只猴子開始遍歷(數組指針歸零)          //步驟同上          if($i == $len) $i = 0;          //同上步驟,獲取下一只猴子編號          if($monkey[$i] == 0)          {             for($k= $i; $k< $len; $k++)             {                  if($monkey[$k] == 0) $i++;                 if($monkey[$k] > 0) break;             }          }      }   }}//猴子個數$n = 10;//踢出隊伍的編號間隔值$m = 3;//調用猴王獲取函數getKingMokey($n, $m);?>

運行結果:

036927185104

用遞歸的算法

$monkeys = array(1 , 2 , 3 , 4 , 5 , 6 , 7, 8 , 9 , 10); //monkey的編號$m = 4; //數到第幾只的那只猴子被踢出去function killMonkey($monkeys , $m , $current = 0){  $number = count($monkeys);    $num = 1;    if(count($monkeys) == 1){      echo $monkeys[0]."成為猴王了";      return;    }    else{      while($num++ < $m){          $current++ ;          $current = $current%$number;        }        echo $monkeys[$current]."的猴子被踢掉了<br/>";        array_splice($monkeys , $current , 1);        killMonkey($monkeys , $m , $current);    }}killMonkey($monkeys , $m);

運行結果:

4的猴子被踢掉了
8的猴子被踢掉了
2的猴子被踢掉了
7的猴子被踢掉了
3的猴子被踢掉了
10的猴子被踢掉了
9的猴子被踢掉了
1的猴子被踢掉了
6的猴子被踢掉了
5成為猴王了

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 潍坊市| 克拉玛依市| 迁安市| 大荔县| 绥滨县| 永宁县| 天峻县| 哈密市| 那坡县| 大荔县| 讷河市| 灵川县| 黄骅市| 栾川县| 石渠县| 邯郸县| 公安县| 斗六市| 常州市| 安吉县| 开封市| 南平市| 桦南县| 舒兰市| 和平区| 曲周县| 江永县| 夏津县| 洮南市| 黄陵县| 崇信县| 灌南县| 五指山市| 杭州市| 漳浦县| 无锡市| 牡丹江市| 辰溪县| 宣城市| 德化县| 中宁县|