約瑟夫環(huán)

2022-10-26 22:26

1個回答
約瑟夫環(huán)是一個數(shù)學的應用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數(shù),數(shù)到m的那個人出列;他的下一個人又從1開始報數(shù),數(shù)到m的那個人又出列;依此規(guī)律重復下去,直到圓桌周圍的人全部出列。
鏈表方法:這個就是約瑟夫環(huán)問題的實際場景,有一種是要通過輸入n,m,k三個正整數(shù),來求出列的序列。這個問題采用的是典型的循環(huán)鏈表的數(shù)據(jù)結構,就是將一個鏈表的尾元素指針指向隊首元素。 p->link=head   解決問題的核心步驟:(程序的基本算法)   1.建立一個具有n個鏈結點,無頭結點的循環(huán)鏈表;   2.確定第1個報數(shù)人的位置;   3.不斷地從鏈表中刪除鏈結點,直到鏈表為空。   void JOSEPHUS(int n,int k,int m) //n為總人數(shù),k為第一個開始報數(shù)的人,m為出列者喊到的數(shù)   {   /* p為當前結點 r為輔助結點,指向p的前驅結點 list為頭節(jié)點*/   LinkList p,r,list; /*建立循環(huán)鏈表*/   for(int i=0;idata=i;   if(list==NULL)   list=p;   else   r->link=p;   r=p;   }   p->link=list; /*使鏈表循環(huán)起來*/   p=list; /*使p指向頭節(jié)點*/   /*把當前指針移動到第一個報數(shù)的人*/   for(i=0;ilink;   }   /*循環(huán)地刪除隊列結點*/   while(p->link!=p)   {   for(i=0;ilink;   }   r->link=p->link;   printf("被刪除的元素:%4d ",p->data);   free(p);   p=r->link;   }   printf("\n最后被刪除的元素是:%4d",P->data);   }
相關問答
什么是約瑟夫環(huán)?
1個回答2022-10-17 18:28
約瑟夫問題的一種描述是:編號為1,2,……,n的n個人按順時針方向圍坐一圈,每人持有一個密碼(正整數(shù))。一開始任選一個正整數(shù)作為報數(shù)上限值m,從第一個人開始按順時針方向自1開始順序報數(shù),報到m時停止報...
全文
約瑟夫環(huán)的由來
1個回答2023-11-27 03:51
由古羅馬史學家約瑟夫提出。 約瑟夫環(huán)問題的由來可以追溯到古羅馬時期的歷史故事。故事中,將軍約瑟夫和40名將士被困在一個洞穴中。為了避免被俘,決定每隔兩個人殺死一人,直到只剩下兩個人投降。約瑟夫有預謀地...
全文
約瑟夫環(huán)問題
1個回答2022-08-25 13:18
約瑟夫環(huán)根本就不需要鏈表處理,只要一個一維數(shù)組就可以了。。你一定要用鏈表處理嗎,這個比較麻煩。。
約瑟夫環(huán)問題
2個回答2022-07-14 17:12
#include int main(){ int ff[300],n,m,nn,i,j; while(n!=0&&m!=0){ scanf("%d%d",&n,&m); ...
全文
約瑟夫環(huán)問題,幫忙了。
1個回答2022-11-04 18:48
你至少應該合并問題 這樣大家也比較方便
約瑟夫的簡介
1個回答2024-02-09 12:35
公元37生于耶路撒冷,公元100年卒于羅馬。約瑟夫是羅馬帝國時期以為僧侶出身的猶太歷史學家,也是一位猶太法利賽教徒(Pharisee)。 約公元64年游歷羅馬,在公元66年猶太起義前夕返回耶路撒冷...
全文
約瑟夫問題:
1個回答2024-03-18 17:56
約瑟夫環(huán): 約瑟夫環(huán)問題的一種描述是:編號為1.2.3…….n的n個人按順時針方向圍坐一圈 ,每人手持一個密碼(正整數(shù)),開始任意選一個整數(shù)作為報數(shù)上限值,從第一 個人開始順時針自...
全文
約瑟夫問題
1個回答2024-06-11 09:12
你的問題是什么?若是編寫程序要說明你要用的語言,以下是C的參考: #include #define N 30 int yuesefu1(int data[],int sum,int k) { ...
全文
約瑟夫問題
1個回答2024-07-01 22:43
#include #include struct node{ int data; struct node *next; }; int main(){ int i,j,k,m...
全文
約瑟夫問題
1個回答2024-08-07 02:47
//約瑟夫環(huán): //這并告?zhèn)€程序有點小問題,你自己看看吧,現(xiàn)在沒時間改了,起始位置有點問題 #include #include int flag; typedef struct node ...
全文