約瑟夫問題

2021-09-18 03:15:09 字數 494 閱讀 1142

今天來說一下約瑟夫問題

有n個人即將被強盜抓住,強盜打劫完後,不忍心殺掉所有人,想放掉乙個人,但人人都想活,於是強盜想出了一種殺人的方法,讓被抓住的n個人圍成一圈,由第1個人報數,每報到第每m個人時,他就會被殺掉,直到剩下最後乙個人,放掉,問站在什麼位置可以避免死亡。

輸入:6 2

輸出:5

#includeint main()

/*先將陣列中的數都賦值為0,誰被殺就變1*/

int count=0,num=n;

i=1;

while(1)

if(a[i]==0&&count%m==0)

if(num==1)

i++;

if(i>n)/*當號碼超過了實際的最大值,就從1重新開始*/

}for(i=1;i<=n;i++)

}return 0;

}

當然約瑟夫問題的解決還有很多種方法,比如鍊錶,有興趣的可以試試。

約瑟夫問題 約瑟夫環

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

約瑟夫問題 約瑟夫環

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

約瑟夫問題

這是17世紀的法國數學家加斯帕在 數目的遊戲問題 中講的乙個故事 15個教徒和15 個非教徒在深海上遇險,必須將一半的人投入海中,其餘的人才能倖免於難,於是想了乙個辦法 30個人圍成一圓圈,從第乙個人開始依次報數,每數到第九個人就將他扔入大海,如此迴圈進行直到僅餘15個人為止。問怎樣排法,才能使每次...