PHP 算法題猴子選大王

題目

一群猴子排成一圈氮墨,按1,2,…,n依次編號溶褪。然后從第1只開始數(shù)肮疗,數(shù)到第m只,把它踢出圈漱抓,從它后面再開始數(shù),再數(shù)到第m只精钮,在把它踢出去…威鹿,如此不停的進行下去,直到最后只剩下一只猴子為止杂拨,那只猴子就叫做大王专普。要求編程模擬此過程,輸入m弹沽、n, 輸出最后那個大王的編號檀夹。用程序模擬該過程。

該題目本質(zhì)是約瑟夫環(huán)的考察策橘,算法還有一個起源故事炸渡,據(jù)說著名猶太歷史學家約瑟夫在羅馬人占領(lǐng)喬塔帕特后,39 個猶太人與約瑟夫及他的朋友躲到一個洞中丽已,39 個猶太人決定寧愿死也不要被敵人抓到蚌堵,于是決定了一個自殺方式,41 個人排成一個圓圈沛婴,由第1個人開始報數(shù)吼畏,每報數(shù)到第 3 人該人就必須自殺,然后再由下一個重新報數(shù)嘁灯,直到所有人都自殺身亡為止泻蚊。由于約瑟夫和他的朋友并不想自殺,但又無法反抗丑婿,只能同意了這個方式性雄,但他把自己和朋友分別安排在了 16 和 31 這兩個位置没卸,最后順利活到了最后。

以上故事再次驗證了秒旋,學好數(shù)理化约计,走遍天下都不怕!
感受知識的魅力吧騷年
代碼實例
<?php
/**
 * @param $n int 元素總個數(shù)
 * @param $m int 指定序數(shù)
 * @return mixed
 */
function mk($n, $m)
{
    //根據(jù)總數(shù)生成數(shù)組
    $range = range(1, $n);
    $i     = 1;
    while (count($range) > 1) {
        //如果不是當前元素迁筛,壓入數(shù)組末尾并刪除當前下標
        if ($i % $m != 0) array_push($range, $range[$i - 1]);
        unset($range[$i - 1]);
        $i++;
    }
    
    return $range[$i - 1];
}

用以上函數(shù)來驗證故事煤蚌,修改一下函數(shù)體邏輯即可

<?php
/**
 * @param $n int 元素總個數(shù)
 * @param $m int 指定序數(shù)
 * @return mixed
 */
function mk($n, $m)
{
    //根據(jù)總數(shù)生成數(shù)組
    $range = range(1, $n);
    $i     = 1;
    //驗證最后剩下的兩個元素
    while (count($range) > 2) {
        //如果不是當前元素,壓入數(shù)組末尾并刪除當前下標
        if ($i % $m != 0) array_push($range, $range[$i - 1]);
        unset($range[$i - 1]);
        $i++;
    }
    
    return $range;
}

$survivor = mk(41, 3); 
print_r($survivor); //16,31
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瑰煎,一起剝皮案震驚了整個濱河市铺然,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌酒甸,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赋铝,死亡現(xiàn)場離奇詭異插勤,居然都是意外死亡,警方通過查閱死者的電腦和手機革骨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門农尖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人良哲,你說我怎么就攤上這事盛卡。” “怎么了筑凫?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵滑沧,是天一觀的道長。 經(jīng)常有香客問我巍实,道長滓技,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任棚潦,我火速辦了婚禮令漂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘丸边。我一直安慰自己叠必,他們只是感情好,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布妹窖。 她就那樣靜靜地躺著纬朝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嘱吗。 梳的紋絲不亂的頭發(fā)上玄组,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天滔驾,我揣著相機與錄音,去河邊找鬼俄讹。 笑死哆致,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的患膛。 我是一名探鬼主播摊阀,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼踪蹬!你這毒婦竟也來了胞此?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤跃捣,失蹤者是張志新(化名)和其女友劉穎漱牵,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疚漆,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡酣胀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了娶聘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片闻镶。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖丸升,靈堂內(nèi)的尸體忽然破棺而出铆农,到底是詐尸還是另有隱情,我是刑警寧澤狡耻,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布墩剖,位于F島的核電站,受9級特大地震影響酝豪,放射性物質(zhì)發(fā)生泄漏涛碑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一孵淘、第九天 我趴在偏房一處隱蔽的房頂上張望蒲障。 院中可真熱鬧,春花似錦瘫证、人聲如沸揉阎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毙籽。三九已至,卻和暖如春毡庆,著一層夾襖步出監(jiān)牢的瞬間坑赡,已是汗流浹背烙如。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留毅否,地道東北人亚铁。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像螟加,于是被迫代替她去往敵國和親徘溢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容