中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP怎么解決約瑟夫環問題

發布時間:2021-12-31 15:35:06 來源:億速云 閱讀:119 作者:iii 欄目:編程語言

這篇文章主要講解了“PHP怎么解決約瑟夫環問題”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP怎么解決約瑟夫環問題”吧!

約瑟夫環問題(猴子選大王)PHP版

約瑟夫斯問題問題有時候也被描述成猴子選大王問題,題目如下。(最后會貼上約瑟夫問題的來歷)

一群猴子排成一圈,按1,2,…,n依次編號。

然后從第1只開始數,數到第m只,把它踢出圈,從它后面再開始數,再數到第m只,在把它踢出去…,如此不停的進行下去,直到最后只剩下一只猴子為止,那只猴子就叫做大王。

要求編程模擬此過程,輸入m、n, 輸出最后那個大王的編號。

用程序模擬該過程,代碼如下:

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只為大王

下面是模擬的過程,對于不剔除的猴子,不斷的加入數組尾部:

 $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

約瑟夫問題來歷:

這個問題是以弗拉維奧·約瑟夫命名的,它是1世紀的一名猶太歷史學家。他在自己的日記中寫道,他和他的40個戰友被羅馬軍隊包圍在洞中。他們討論是自殺還是被俘,最終決定自殺,并以抽簽的方式決定誰殺掉誰。約瑟夫斯和另外一個人是最后兩個留下的人。約瑟夫斯說服了那個人,他們將向羅馬軍隊投降,不再自殺。約瑟夫斯把他的存活歸因于運氣或天意,他不知道是哪一個。

感謝各位的閱讀,以上就是“PHP怎么解決約瑟夫環問題”的內容了,經過本文的學習后,相信大家對PHP怎么解決約瑟夫環問題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

慈溪市| 普洱| 罗甸县| 航空| 饶阳县| 安宁市| 英吉沙县| 阿鲁科尔沁旗| 南昌县| 湖口县| 上虞市| 灵璧县| 宾川县| 嘉黎县| 衡南县| 海兴县| 泾源县| 襄樊市| 睢宁县| 宝兴县| 平潭县| 揭东县| 舒城县| 固原市| 民和| 申扎县| 仪征市| 山阳县| 呼伦贝尔市| 福贡县| 呈贡县| 麻城市| 张家界市| 云龙县| 信阳市| 荆州市| 鄄城县| 宁海县| 甘德县| 惠东县| 江都市|