Artikel ini akan memperkenalkan kepada anda versi PHP masalah Joseph Ring (monyet memilih raja). Ia mempunyai nilai rujukan tertentu Rakan-rakan yang memerlukan boleh merujuk kepadanya.
Masalah Joseph Ring (Monyet Memilih Raja) Versi PHP
Masalah Josephus kadangkala digambarkan sebagai monyet memilih masalah raja, dan tajuknya adalah seperti berikut. (Asal usul masalah Yusuf akan disiarkan di penghujung)
Sekumpulan monyet berbaris dalam bulatan dan dinomborkan mengikut 1, 2,...,n.
Kemudian mula mengira dari yang pertama, mengira ke yang ke-1, menendangnya keluar dari bulatan, mula mengira dari belakangnya, mengira ke yang ke-1 lagi, menendangnya keluar..., dan seterusnya Ini berterusan sehingga hanya tinggal seekor monyet, dan monyet itu dipanggil raja.
Memerlukan pengaturcaraan untuk mensimulasikan proses ini, memasukkan m, n, dan mengeluarkan nombor raja terakhir.
Gunakan program untuk mensimulasikan proses ini ditambah:
function monkeyKing($n, $m) { $arr = range(1, $n); //构造一个数组 $i = 1; //从第一个开始循环 while (count($arr) > 1) { //如果总数大于1 if ($i % $m != 0) { $arr[] = $arr[$i - 1]; //不被踢出则压入数组尾部 } unset($arr[$i - 1]); //压入数组然后删除 $i++; //继续循环 } return $arr[$i - 1]; //直至最后剩下一个为大王 } print_r(monkeyKing(5, 3)); //第4只为大王
Asal usul Josephus Soalan:
$n = 5 $m = 3 $arr = [1, 2, 3, 4, 5] $i $arr ---+------------------------ 1 x 2 3 4 5 1 2 x x 3 4 5 1 2 >3 x x x 4 5 1 2 4 x x x x 5 1 2 4 5 x x x x x 1 2 4 5 >6 x x x x x x 2 4 5 7 x x x x x x x 4 5 2 8 x x x x x x x x 5 2 4 >9 x x x x x x x x x 2 4 10 x x x x x x x x x x 4 2 11 x x x x x x x x x x x 2 4 >12 x x x x x x x x x x x x 4
Tutorial Video PHP
"Atas ialah kandungan terperinci Satu artikel untuk menyelesaikan masalah cincin Joseph (versi PHP). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!