国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彭水| 宣武区| 高雄市| 绥化市| 双柏县| 博客| 洪江市| 蓝山县| 潼关县| 和顺县| 林口县| 武义县| 永善县| 改则县| 阿勒泰市| 光泽县| 虎林市| 分宜县| 岳西县| 长垣县| 郴州市| 富民县| 望奎县| 丹江口市| 沐川县| 浪卡子县| 黄梅县| 务川| 子长县| 贺兰县| 广灵县| 扬中市| 凌源市| 顺平县| 贵德县| 衡阳市| 申扎县| 三明市| 鄄城县| 普格县| 宜君县|