約瑟夫環(約瑟夫問題)是乙個數學的應用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下乙個人又從1開始報數,數到m的那個人又出列;依次規律重複下去,直到圓桌周圍的人全部出列。通常解決這類問題時我們把編號從0~n-1,最後結果+1即為原問題的解。
解決方案很多種,不過我都看不太懂(原諒我實在太愚笨了)
這裡我先舉個例子
假如 有5個人 數到3的要出列,那麼過程是這樣的
開始是1 2 3 4 5
毫無疑問 從1開始數,3號肯定要離開 得到
1 2 4 5
然後該4開始數了,那麼數到5 再輪迴頭數 1要離開 得到
2 4 5
然後該2開始數,數到5 5離開 得到
2 4
然後發現5離開了後面輪迴來還是2 那就還是2開始數 數回自己 自己離開 得到
整個過程就是 3離開 1離開 5離開 2離開 4留了下來
如果轉換為**怎麼實現呢?
**如下:
<?php截圖如下:function joseph_problem($total=1,$number=1)
else
$array=array_values($array);//
形成新的陣列
$now_count = count($array
);
//計算出在新的$array中,開始報數的位置
if($need_del>=$now_count
) else
}return
$array[0];
}echo joseph_problem(5,3);exit
();?>
輸出效果如下:
約瑟夫問題 約瑟夫環
約瑟夫 問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死...
約瑟夫問題 約瑟夫環
約瑟夫問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也...
約瑟夫環問題
約瑟夫環問題 問題描述 編號是1,2,n的n個人按照順時針方向圍坐一圈,每個人持有乙個密碼 正整數 一開始任選乙個正整數作為報數上限值m,從第乙個人開始順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下乙個人開始重新從1報數,如此下去,直到所有人...