約瑟夫問題 mark

2021-07-29 03:52:35 字數 538 閱讀 7662

把問題重新描述一下:n個人(編號0~(n-1)),從0開始報數,報到(m-1)的自殺,剩下的人繼續從0開始報數。求最後自殺者的編號。

n個人編號如下:

第乙個自殺的人是(m-1)%n,例如上圖中,41個人中,報到3的人自殺,則字乙個自殺的人的編號是(3-1)%41=2。編號(m-1)%n自殺後,剩下的人排列如下:

將上面的排列順序重新編號:

問題變為(n-1)個人,報到為(m-1)的人自殺,問題規模減小了。這樣一直進行下去,最後剩下編號為0的人。用函式表示:

f(1)=0

當有2個人的時候(n=2),報道(m-1)的人自殺,最後自殺的人是誰?應該是在只有乙個人時,報數時得到的最後自殺的序號加上m,因為報到m-1的人已經自殺,只剩下2個人,另乙個自殺者就是最後自殺者,用函式表示:

f(2)=f(1)+m

可以得到遞推公式:

f(i)=f(i-1)+m

因為可能會超出總人數範圍,所以要求模

f(i)=(f(i-1)+m)%i

有了遞推公式就可以在o(n)時間求出結果:

約瑟夫問題 約瑟夫環

約瑟夫 問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死...

約瑟夫問題 約瑟夫環

約瑟夫問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也...

有些問題Mark下來先

剛剛做完測試,簡單的全屏flip和bltfast,嗯.感覺又找回來了。自從上年國慶過後就沒有碰dx,跑去研究spi了。那時候做了個跟permeo secure driver 差不多的東西,的是http connect而不是socks,用來過濾學校 出國外網的ip位址和玩網遊。扯遠了。剛回來看了一下,...