《PHP實例:PHP基于遞歸實現的約瑟夫環算法示例》要點:
本文介紹了PHP實例:PHP基于遞歸實現的約瑟夫環算法示例,希望對您有用。如果有疑問,可以聯系我們。
PHP編程本文實例講述了PHP基于遞歸實現的約瑟夫環算法.分享給大家供大家參考,具體如下:
PHP編程約瑟夫環問題: 39 個猶太人與Josephus及他的朋友躲到一個洞中,39個猶太人決定寧愿死也不要被敵人抓.于是決定了自殺方式,41個人排成一個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺.然后下一個重新報數,直到所有人都自殺身亡為止.然而Josephus 和他的朋友并不想遵從,Josephus要他的朋友先假裝遵從,他將朋友與自己安排在第16個與第31個位置,于是逃過了這場死亡游戲.
PHP編程 <?php $num = 41; $step = 3; function joseph($arr, $step, $start, $survivors) { foreach($arr as $k => $v) { if($start % $step === 0) { unset($arr[$k]); $start = 1; } else { $start ++; } } if(count($arr) > $survivors) return joseph($arr, $step, $start, $survivors); else return $arr; } $i = 0; $arr = []; while($i ++ < $num){ $arr[] = $i; } $arr = joseph($arr, 3, 1, 2); print_r($arr);
PHP編程執行結果:
PHP編程 Array ( [15] => 16 [30] => 31 )
PHP編程更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數據結構與算法教程》、《php程序設計算法總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP常用遍歷算法與技巧總結》及《PHP數學運算技巧總結》
PHP編程希望本文所述對大家PHP程序設計有所幫助.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/219.html