Satu artikel untuk menyelesaikan masalah cincin Joseph (versi PHP)

藏色散人
Lepaskan: 2023-04-10 20:56:02
ke hadapan
4124 orang telah melayarinya

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只为大王
Salin selepas log masuk

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
Salin selepas log masuk
Soalan ini dinamakan sempena Flavio Josephus, seorang ahli sejarah Yahudi abad ke-1. Dia menulis dalam diarinya bahawa dia dan 40 rakannya telah dikelilingi oleh tentera Rom di dalam gua. Mereka berbincang sama ada mahu membunuh diri atau ditangkap, dan akhirnya memutuskan untuk membunuh diri, dan memutuskan siapa yang akan membunuh siapa dengan membuat undian. Josephus dan seorang lelaki lain adalah dua orang terakhir yang tinggal. Josephus meyakinkan lelaki itu bahawa mereka akan menyerah diri kepada tentera Rom dan tidak membunuh diri lagi. Josephus mengaitkan kelangsungan hidupnya dengan nasib atau rezeki, dia tidak tahu yang mana.

Pembelajaran yang disyorkan: "

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!

Label berkaitan:
php
sumber:awaimai.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan