php解決約瑟夫環(huán)

“約瑟夫環(huán)”是一個數(shù)學的應用問題:一群猴子排成一圈,按1,2,…,n依次編號匕坯。然后從第1只開始數(shù),數(shù)到第m只,把它踢出圈拔稳,從它后面再開始數(shù)葛峻, 再數(shù)到第m只,在把它踢出去…巴比,如此不停的進行下去术奖, 直到最后只剩下一只猴子為止,那只猴子就叫做大王轻绞。要求編程模擬此過程采记,輸入m、n, 輸出最后那個大王的編號政勃。

方法一:遞歸算法

function killMonkey($monkeys , $m , $current = 0){
    $number = count($monkeys);
    $num = 1;
    if(count($monkeys) == 1){
        echo $monkeys[0]."成為猴王了";
        return;
    }
    else{
        while($num++ < $m){
            $current++ ;
            $current = $current%$number;
        }
        echo $monkeys[$current]."的猴子被踢掉了<br/>";
        array_splice($monkeys , $current , 1);
        killMonkey($monkeys , $m , $current);
    }
}
$monkeys = array(1 , 2 , 3 , 4 , 5 , 6 , 7, 8 , 9 , 10); //monkeys的編號
$m = 3; //數(shù)到第幾只猴子被踢出
killMonkey($monkeys , $m);

方法二:線性表應用

每個猴子出列后唧龄,剩下的猴子又組成了另一個子問題。只是他們的編號變化了奸远。第一個出列的猴子肯定是a[1]=m(mod)n(m/n的余數(shù))既棺,他除去后剩下的猴子是a[1]+1,a[1]+2,…,n,1,2,…a[1]-2,a[1]-1,對應的新編號是1,2,3…n-1然走。設此時某個猴子的新編號是i援制,他原來的編號就是(i+a[1])%n。于是芍瑞,這便形成了一個遞歸問題晨仑。假如知道了這個子問題(n-1個猴子)的解是x,那么原問題(n個猴子)的解便是:(x+m%n)%n=(x+m)%n拆檬。問題的起始條件:如果n=1,那么結果就是1洪己。

function yuesefu($n,$m) {  
    $r=0;  
    for($i=2; $i<=$n; $i++) {
        $r=($r+$m)%$i;  
    }
    return $r+1;  
}  
echo yuesefu(10,3)."是猴王";
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市竟贯,隨后出現(xiàn)的幾起案子答捕,更是在濱河造成了極大的恐慌,老刑警劉巖屑那,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拱镐,死亡現(xiàn)場離奇詭異,居然都是意外死亡持际,警方通過查閱死者的電腦和手機沃琅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜘欲,“玉大人益眉,你說我怎么就攤上這事。” “怎么了郭脂?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵年碘,是天一觀的道長。 經(jīng)常有香客問我展鸡,道長屿衅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任娱颊,我火速辦了婚禮傲诵,結果婚禮上,老公的妹妹穿的比我還像新娘箱硕。我一直安慰自己拴竹,他們只是感情好,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布剧罩。 她就那樣靜靜地躺著栓拜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪惠昔。 梳的紋絲不亂的頭發(fā)上幕与,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天,我揣著相機與錄音镇防,去河邊找鬼啦鸣。 笑死,一個胖子當著我的面吹牛来氧,可吹牛的內容都是我干的诫给。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼啦扬,長吁一口氣:“原來是場噩夢啊……” “哼中狂!你這毒婦竟也來了?” 一聲冷哼從身側響起扑毡,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤胃榕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瞄摊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勋又,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年换帜,在試婚紗的時候發(fā)現(xiàn)自己被綠了赐写。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡膜赃,死狀恐怖,靈堂內的尸體忽然破棺而出揉忘,到底是詐尸還是另有隱情跳座,我是刑警寧澤端铛,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站疲眷,受9級特大地震影響禾蚕,放射性物質發(fā)生泄漏。R本人自食惡果不足惜狂丝,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一换淆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧几颜,春花似錦倍试、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谆趾,卻和暖如春躁愿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背沪蓬。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工彤钟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人跷叉。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓逸雹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親性芬。 傳聞我的和親對象是個殘疾皇子峡眶,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內容

  • 約瑟夫問題 故事 39個猶太人與Josephus以及他的朋友躲到一個洞里,決定寧愿死也不要被敵人抓到植锉。于是決定了自...
    JunChow520閱讀 1,836評論 0 13
  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,333評論 0 2
  • 1.需求---- 經(jīng)典約瑟夫問題 首先俊庇,我們需要知道什么是約瑟夫問題狮暑?即設有n個人圍成一圈,現(xiàn)從第m個人開始報數(shù)辉饱,...
    愛因斯沒有坦閱讀 5,092評論 1 0
  • 尊老愛幼搬男,誠實守信。勤儉持家彭沼,知恩圖報缔逛。著裝整齊,舉止莊重。言不顛狂褐奴,行不逾矩按脚。學無止境,一生之事敦冬。當日事辅搬,當日結...
    E路平坦閱讀 490評論 0 1