猴子選大王--約瑟夫問題淺析

一羣猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈,從它後面再開始數,再數到第m只,在把它踢出去…,如此不停的進行下去,直到最後只剩下一隻猴子爲止,那隻猴子就叫做大王。要求編程模擬此過程,輸入m、n, 輸出最後那個大王的編號。用程序模擬該過程

function getKing($n,$m){
	$arr = range(1,$n);
	$i = 1;
	while(count($arr)>1){
		if($i%$m!=0){
			array_push($arr,$arr[$i-1]);
		}
		unset($arr[$i-1]);
		$i++;
	}
	return $arr;
}
print_r(getKing(6,8));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章