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

首頁 > 開發 > PHP > 正文

php實現約瑟夫問題的方法小結

2024-05-04 23:33:13
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php實現約瑟夫問題的方法,實例總結了兩種常見的實現約瑟夫問題的技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例總結了php實現約瑟夫問題的方法。分享給大家供大家參考。具體分析如下:

一群猴子排成一圈,按1,2,...,n依次編號。然后從第1只開始數,數到第m只,把它踢出圈,從它后面再開始數, 再數到第m只,在把它踢出去...,如此不停的進行下去, 直到最后只剩下一只猴子為止,那只猴子就叫做大王。要求編程模擬此過程,輸入m、n, 輸出最后那個大王的編號。

解析:

約瑟夫環是一個數學的應用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重復下去,直到圓桌周圍的人全部出列。

方法一:

 

 
  1. <?php 
  2. function getLeader($n,$m) {  
  3. $res=0;  
  4. for($i=2; $i<=$n$i++) { 
  5. $res=($res+$m)%$i;  
  6. return $res+1;  
  7. }  
  8. $leader = getLeader(13,34); 
  9. echo $leader
  10. ?> 

方法二:

 

 
  1. <?php 
  2. //定義函數 
  3. function getKing($monkeys , $m , $current = 0){ 
  4. $number = count($monkeys); 
  5. $num = 1; 
  6. if(count($monkeys) == 1){ 
  7. echo '<font color="red">編號為'.$monkeys[0].'的猴子成為猴王了!</font>'
  8. return
  9. }else
  10. while($num++ < $m){ 
  11. $current++ ; 
  12. $current = $current%$number
  13. echo "編號為".$monkeys[$current]."的猴子被踢掉了...<br/>"
  14. array_splice($monkeys , $current , 1); 
  15. getKing($monkeys , $m , $current); 
  16. $n=13; //總共猴子數目 
  17. $m = 34; //數到第幾只的那只猴子被踢出去 
  18. $monkeys = range(1,$n); //將猴子編號放入數組中 
  19. getKing($monkeys , $m); //調用函數 
  20. ?> 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河源市| 怀宁县| 简阳市| 南开区| 广州市| 三台县| 邯郸市| 余姚市| 嵊泗县| 泰和县| 仲巴县| 彭水| 平谷区| 广南县| 南召县| 太康县| 益阳市| 沽源县| 内乡县| 湘西| 上犹县| 类乌齐县| 郴州市| 长宁县| 乐都县| 固安县| 萍乡市| 正阳县| 郸城县| 常州市| 长治市| 新兴县| 盱眙县| 三河市| 洛扎县| 上杭县| 芜湖市| 嵊泗县| 柳河县| 阳高县| 博客|