約瑟夫問題

2021-10-19 07:02:13 字數 1190 閱讀 9945

問題描述:

n 個人報數字,報到m的人被殺死,如此迴圈,剩下最後乙個人,求最後乙個人的編號。

/*約瑟夫問題滿足公式f[i] = (f[i - 1] + m) % i; */

//n 個人報數字m,剩下最後乙個人。

#include

using

namespace std;

intmain()

cout << f +

1

("pause");

return0;

}//鍊錶方式求解

/*#include#include#include #include #include using namespace std;

typedef struct node node;

node* createcycle(int n)//將n個結點圍成一圈,返回頭結點的前乙個結點

p->next=head;

return p;

}node*countnode(node* p, int k)//每次選出乙個節點刪除

if (pre == p)//已經到了最後乙個節點

else }

int main()

system("pause");

return 0;

}*/

用鍊錶實現:

//約瑟夫問題,用迴圈鍊錶實現

#include

#include

using

namespace std;

typedef

struct nodenode,

*linknode;

node *

recycle

(node *p,

int m)

p->next=p-

>next-

>next;

if(p-

>next==p)

else

}int

main()

q->next=head;

node *answer=

recycle

(head,m)

;printf

("%d\n"

,answer-

>data)

;return0;

}

約瑟夫問題 約瑟夫環

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

約瑟夫問題 約瑟夫環

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

約瑟夫問題

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