PHP演算法趣談 猴子找大王

2021-09-14 08:43:30 字數 727 閱讀 5322

將一群猴子排成一圈,按照猴子數按照1,2,...,n依次編號。然後從第1只開始數,定義數m個猴子,之後將數到的猴子將它踢出圈,從它後面再開始數, 再數到第m只,在把它踢出去...,如此迴圈的進行下去,直到最後只剩下乙隻猴子為止,那只猴子就是大王。

此演算法問題來自於約瑟夫問題(**維基百科)

約瑟夫斯問題(有時也稱為約瑟夫斯置換),是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。 有n個囚犯站成乙個圓圈,準備處決。首先從乙個人開始,越過 k-2個人(因為第乙個人已經被越過),並殺掉第k個人。接著,再越過 k-1個人,並殺掉第k個人。這個過程沿著圓圈一直進行,直到最終只剩下乙個人留下,這個人就可以繼續活著。 問題是,給定了n和k,一開始要站在什麼地方才能避免被處決?

<?php 

//演算法問題

//function xdw($m, $n)

//print_r($arr);

//定義猴子排序個數

$j = 0;

while (count($arr) > 1) else

$j++;

}return $arr;

}print_r(xdw(40, 3));

?>

演算法 約瑟夫演算法或猴子找大王

猴子 約瑟夫演算法 11只猴子 思路 沒有叫到的刪除掉原來的位置,加到後面 原理 迴圈鍊錶 monkeys 1,2,3,4,5,6,7,8,9,10 king choosemonkeyking monkeys,3 print r king 求交集取出來原始位置 king pos array inte...

C語言 猴子找大王

日常練習總結歸納 問題問法 譚浩強c語言程式設計書課後題,輸入n,m,其中n表示有n個人圍成一圈,順序排號 編號為n的人的下乙個編號為1 從第乙個人開始迴圈報數 從1到m報數 凡報到m的人退出圈子,要求輸出所有人出圈的次序。用鍊錶方式實現 include struct student int mai...

PHP猴子選大王演算法(詳解)

現在去公司面試很多hr都會讓程式猿寫乙個演算法,來考察程式猿的思維邏輯能力。演算法對其他的程式語言是很重要的,但是對於php這種弱類的程式語言,演算法其實用得並不是很多,但是沒辦法,hr要讓你寫,你不得不寫,誰叫他是老大呢。好吧,閒話不多說,上 notes user administrator da...