經典演算法之約瑟夫環問題

2021-06-18 15:01:37 字數 353 閱讀 5946

前幾天看到乙個程式設計題,約瑟夫環問題。問題的由來是乙個猶太故事,41乙個人被困,有39個人想要自殺,想活下去的兩個人就出主意說,大家圍成乙個環,報到3的人自殺。結果兩個人成功脫險,也就誕生了這個演算法。

由於本人實力有限,寫出的程式也並未進行優化,可能時間複雜度和空間複雜度上有很多問題,只希望給各位網友一些思路。

ps:有乙個懂演算法的朋友是件多麼幸福的事兒啊,請善待身邊的程式設計師朋友。。

public class ysfring

public static void ring(int personnum,int killnum)

i++;}}

for(int s=0;s

經典演算法問題之約瑟夫問題

據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報數,直到所...

演算法學習之約瑟夫環問題

問題 假設下標從0開始,0,1,2 m 1共m個人,從1開始報數,報到k則此人從環出退出,問最後剩下的乙個人的編號是多少?我的理解 設f m,k,i 為m個人的環,報數為k,第i個人出環的編號,m個人的環第i個出來的人就相當於m 1個人的環第i 1個出來的人,不過這個序號是相當於原來m個人的序號。但...

C 之約瑟夫環

問題原型 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報數,直到所有人都自殺身亡為止。然而josephus 和...