この記事では主に、phpのジョセフ問題の実装と応用スキルを例とともに分析しています。友達はそれを参照できます
この記事の例は、囚人を処刑する際の php Joseph 問題解決のアルゴリズムについて説明しています。皆さんの参考に共有してください。具体的な分析は次のとおりです:
昔、裁判官は 4 人目の囚人に死刑を宣告したいと考えていましたが、囚人を s 人目から数えて D 人目に達するたびに引き出されて処刑されるというとんでもない法律がありました。 、そして再び D を数え、そして最後に残った 1 人が赦されるまで、引き出されて処刑されます。
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
関数 getNum($n,$m){ //すべての数値を配列の初期化に格納するために使用されます $a = 配列(); //トラバースして配列に格納する for($i=1;$i $a[$i] = $i; } //ポインタが0に戻ります リセット($a); while(count($a)>1){ //配列内の項目が 1 より大きい場合、ループを続けて要素を削除します //排除ルール for($j=1;$j //配列の最後の項目に到達していない場合 if(next($a)){ if($j==$m){ //m 個のアイテムを削除します unset($a[array_search(prev($a),$a)]); } }その他{ //次が存在しない場合、ポインタは 0 に戻ります リセット($a); if($j==$m){ unset($a[array_search(end($a),$a)]); リセット($a); } } } } 電流を返す($a); } エコー getNum(5,3); |
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。