1樓:網友
非連結串列的。#include "iostream"
using namespace std;
#define m 100
int count=0;
int order[m];
void joseph(int n,int k,int m)int flag[m]=;
int count=0;
for(int i=k;i<=n;i++)if(flag[i]==0)
count++;
if(count==m)
flag[i]=1;
count=0;
couti=0;void main()
int n,k,m;
cout<<"輸入總人數:"cout<<"第幾個人開始報數?"cout<<"報到數字幾的人退出?"cout<<"退出的人的順序為:"joseph(n,k,m);
2樓:網友
你可以用迴圈連結串列做。
【基礎】約瑟夫問題
3樓:網友
我原來寫的,不知道合不合你的情況,希望能給你幫助,另外程式設計還是要靠自己。
#include ""
#include ""
#include "vector"
using namespace std;
void main()
j++;/*本輪+1*/
if(i==s-1)/*重新遍歷每個人*/i=-1;
if(k==s)/*全部輸出完成時結束*/break;
system("pause");}
約瑟夫難題的約瑟夫指的是哪位約瑟夫?
4樓:淄熙
據說著名猶太歷史學家 josephus有過以下的故事:在羅馬人佔領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報數,直到所有人都自殺身亡為止。然而josephus 和他的朋友並不想遵從,josephus要他的朋友先假裝遵從,他將朋友與自己安排在第16個與第31個位置,於是逃過了這場死亡遊戲。
17世紀的法國數學家加斯帕在《數目的遊戲問題》中講了這樣乙個故事:15個教徒和15 個非教徒在深海上遇險,必須將一半的人投入海中,其餘的人才能倖免於難,於是想了乙個辦法:30個人圍成一圓圈,從第乙個人開始依次報數,每數到第九個人就將他扔入大海,如此迴圈進行直到僅餘15個人為止。
問怎樣排法,才能使每次投入大海的都是非教徒。 *問題分析與演算法設計 約瑟夫問題並不難,但求解的方法很多;題目的變化形式也很多。這裡給出一種實現方法。
題目中30個人圍成一圈,因而啟發我們用乙個迴圈的鏈來表示。可以使用結構陣列來構成乙個迴圈鏈。結構中有兩個成員,其一為指向下乙個人的指標,以構成環形的鏈;其二為該人是否被扔下海的標記,為1表示還在船上。
從第乙個人開始對還未扔下海的人進行計數,每數到9時,將結構中的標記改為0,表示該人已被扔下海了。這樣迴圈計數直到有15個人被扔下海為止。
什麼是約瑟夫斯問題?
5樓:易書科技
這是乙個古老的傳說:有64名戰士被敵人俘虜了,敵人命令他們排成乙個圓圈,編上號碼1,2敵人把1號殺了,又把3號殺了,他們是隔乙個殺乙個這樣轉著圈殺,最後剩下乙個人,這個人就是約瑟夫斯,請問約瑟夫斯是多少號?這就是「約瑟夫斯問題」。
這個問題是比較容易解答的:敵人從1號開始,隔乙個殺乙個,第一圈把奇數號碼的戰士全殺死了。剩下的32名戰士需要重新編號,而敵人在第二圈殺死的是重新編排的奇數號碼。
由於第一圈剩下的全部是偶數號2,4把它們全部用2除,得1,2這是第二圈重新編的號碼,第二圈殺過之後,又把奇數號碼都殺掉了,還剩下16個人,如此下去,可以想到最後剩下的必然是64號。
=2它可以連續被2整除6次,是從1到64中能被2整除次數最多的數,因此,最後必然把64號剩下,從64=還可以看到,是轉這6圈之後,把約瑟夫斯剩下來的。
如果有65名戰士被俘,敵人還是按上述方法殘殺戰士,最後剩下的還是64號約瑟夫斯嗎?
不是了,因為第乙個人被殺後,也就是1號被殺後,第二個被殺的必然是3號,如果把1號排除在外,那麼剩下的仍是64個人,對於剩下這64個人,新1號就應該是原來的3號,這樣原來的2號就變成新的64號了,所以剩下的必然是原來的2號。
對於一般情況來說,如果原來有2k個人,最後剩下的必然是2k號;如果原來有2k+個人,最後剩下的是2號;如果原來有2k+個人,最後剩下的是4號……如果原來有2k+個人,最後剩下的是2m號。
比如,原來有100人,由於100所以最後剩下的是2×3號;又比如,原來有111人,由於111所以最後剩下的是2×4號。
下面把問題改一下:不讓被俘的戰士站成圓圈,而排成一條直線,然後編上號碼,從1號開始,隔乙個殺乙個,殺過一遍之後,然後再重新編號,從新1號開始,再隔乙個殺乙個,問最後還是約瑟夫斯嗎!
答案是肯定的,最後剩下的仍然是約瑟夫斯。
如果戰俘人數是65人呢?剩下的還是約瑟夫斯,只要人數不超過128人,也就是人數小於27,那麼最後剩下的總是約瑟夫斯,因為從1到128中間,能被2整除次數最多的就是64,而敵人每次都是殺奇數號留偶數號,所以64號總是最後被留下的人。
什麼是約瑟夫問題?
6樓:上海獨品新感覺
約瑟夫問題是個有名的問題:n個人圍成一圈,從第乙個開始報數,第m個將被殺掉,最後剩下乙個,其餘人都將被殺掉。例如n=6,m=5,被殺掉的人的序號為5,4,6,2,3。
最後剩下1號。
假定在圈子裡前k個為好人,後k個為壞人,你的任務是確定這樣的最少m,使得所有的壞人在第乙個好人之前被殺掉。
男生請進!問題,男生請進!一個問題
你說的有點片面,喜歡某個人不僅僅看她的相貌 身材,最重要的還要看她的 心理 美,我個人就是這樣認為的,當然像你所說的那種女孩,都是男孩子追求的物件,不知樓主你您是屬於哪種型別的呢?男人不可能都喜歡同一種女孩子 蘿蔔白菜各有所愛 不能從這抽象的問題就決定自己喜不喜歡.要看看才行 這個不一定咯,要看個人...
求解vb演算法問題,求解一個vb演算法問題
57132899 那先坐的為a位 再計算出除去a位之外的相鄰組合 隨機選出一個組合 vb一個演算法問題。樓主到現在還沒結貼證明還沒找到所求,正好有空,我就補上vb6的碼 問題考點 數字組合演算法,就用最簡單的遞迴吧。你先建三text,text1的屬性 scrollbars設為2 multiline設...
請教各位高手問題,請教各位高手一個問題
調為純白,是為了不讓顯示屏長時間顯示同一影象,這樣很容易 灼傷 螢幕,其道理和屏保是一樣的,電腦設定屏保幹什麼,可不是為了好看的。但誰要你調為純白啊?看不出有什麼特別的意義,那樣還不如設定屏保呢。離開的情況,要看你是怎麼想的。如果為了節電,還是關掉的好,開機瞬間的電流雖然很大,但由於時間極短,是耗不...