約瑟夫問題

2021-08-20 11:18:14 字數 1219 閱讀 6959

鍊錶是c語言中的乙個重要的組成部分,陣列有它的不足之處,就是在剛開始定義陣列時必須明確它的元素的個數。但是,在實際應用的過程中,經常可能要用多次陣列,這樣的話就必須在開始定義乙個比較大的陣列,而這樣的話又恰恰會浪費一定的儲存空間,這樣的話用鍊錶就可以解決這個問題。鍊錶也是c語言中和指標,位運算一樣,一些比較特色而又比較重要的功能。而接下來要寫的就是用鍊錶解決的約瑟夫問題。

約瑟夫問題的簡單描述:n個人圍成一圈,從第乙個人開始報數,第m個將被殺掉,依次進行,最後只剩下乙個,其餘人將被殺掉,這就是著名的約瑟夫問題,以下的**中將用41個人作為例子來用c語言解決約瑟夫問題。

鍊錶是c語言中的乙個重要的組成部分,陣列有它的不足之處,就是在剛開始定義陣列時必須明確它的元素的個數。但是,在實際應用的過程中,經常可能要用多次陣列,這樣的話就必須在開始定義乙個比較大的陣列,而這樣的話又恰恰會浪費一定的儲存空間,這樣的話用鍊錶就可以解決這個問題。鍊錶也是c語言中和指標,位運算一樣,一些比較特色而又比較重要的功能。而接下來要寫的就是用鍊錶解決的約瑟夫問題。

約瑟夫問題的簡單描述:n個人圍成一圈,從第乙個人開始報數,第m個將被殺掉,依次進行,最後只剩下乙個,其餘人將被殺掉,這就是著名的約瑟夫問題,以下的**中將用41個人作為例子來用c語言解決約瑟夫問題。

#include

#include

struct jew ;

int main (int argc, char ** argv)

r→number=n;

r→next=jew;/*鍊錶的最後乙個節點指向第乙個節點的位址,形成環形鍊錶*/

printf("suicide order:\n");

while (r!=r→next)

printf ("\n when n =%d and m=%d,josephus, hiding in posotion %d survives. \n,n ,m,r→nunumber");

free (jew);

return 0;

}

這就實現了約瑟夫問題,41個人,在31號位置的得以倖存。

約瑟夫問題 約瑟夫環

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

約瑟夫問題 約瑟夫環

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

約瑟夫問題

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