程式設計求解約瑟夫問題,誰知道約瑟夫斯問題怎麼解

2025-01-11 14:05:06 字數 1310 閱讀 3270

1樓:

#include

#define m 8

void squeeze(int a,int n)/*從字串a中刪除與n相同的字元並壓縮字串a*/

int i=0,j=0;

for(;a[i]!=0';i++)

if(a[i]!=n)a[j++]a[i];

a[j]='0';

void main()

int i,j,k,n,n;

static int a[m],b[m];

for(i=0;i0;)

for(j=0;jn++;if(!(n%n))

b[k++]a[j];

squeeze(a,a[j]);

i--;j--;

for(i=0;iprintf("%d\t",b[i]);

printf("");

誰知道約瑟夫斯問題怎麼解

2樓:匿名使用者

1全部題目]:聽過這樣乙個古老的傳說:有64名戰士被敵人俘虜了。

敵人命令他們拍成一圓圈,編上號碼1,2,3…,64。敵人把1號殺了,又把3號殺了,他們隔著乙個殺乙個這樣轉著圈殺。最後只剩下乙個人,這個人就是約瑟夫斯。

請問約瑟夫斯是多少號?(這就是「約瑟夫斯」問題。)

這個問題解答起來比較簡單:敵人從1號開始,隔乙個殺乙個,第一圈把所有的奇數號碼的戰士圈殺光了。剩下的32名戰士需要重新編號,而敵人在第二圈殺死的是重新編號的奇數號碼。

由於第一圈剩下的全部是偶數號2,4,6,…,64。把它們全部用2去除,得1,2,3,…,32。這是第二圈編的號碼。

第二圈殺過以後,又把奇數號碼都殺掉了,還剩16個人。如此下去,可以想到最後剩下的必然是64號。

64=26,它可以連續被2整除6次,是從1到64中能被2整除次數最多的數,因此,最後必然把64 號留下。

如果有65名戰士被俘,敵人還是按上述的方法殘殺戰士,最後還會剩下約瑟夫斯嗎?

經過計算,很容易得到結論,不是。因為第乙個人被殺後,也就是1號被殺後,第二個被殺的是必然3號。如果把1號排除在外,那麼還剩下的仍是64人,新1號就是3號。

這樣原來的2號就變成了新的64 號,所以剩下的必然是2號。

進一步的歸類,不難發現如果原來有2k個人,最後剩下的必然2k號;如果原來有2k+1個人,最後剩下2號;如果原來有2k+2個人,最後剩下4號……如果原來有2k+m個人,最後剩下2m號。

比如:原來有100人,由於100=64+36=26+36,所以最後剩下的就是36×2=72號;又如:原來有111人,由於100=64+47=26+47,所以最後剩下的就是47×2=94號。

金賢重要解約了嗎,誰知道金賢重現在在忙什麼啊?

親吶 對的 我們賢和裴大叔的公司簽約了 但是 五隻不會解散 說ss解散的人腦子有問題 五週年的時候五隻已經反覆強調會永遠在一起了 亨娃子還說會出二輯 其實賢籤keyeast並不影響五隻在一起 向神話他們不也是分開籤的麼 人家照樣走了十幾年了 咱們家的娃說過要在一起五十年的 現在這狀態你就當是賢拍花樣...

誰知道這一問題的答案,這個問題誰知道答案呀 腦筋急轉彎。

中世紀也分很多派別的,也分主要幾個人物,各有各的流派,歐州大多以宗教為題材 你要問的是什麼地方什麼派別的呀?注重bai素描關係,暗部du 沒有補色而是加了褐色,沒有zhi筆觸dao,或筆觸幾乎看回不見,畫面平坦,報厚答 均勻,構圖完整,近處畫人,人物背後一般都是真實的風景,多采用透明色彩,層層上色,...

誰知道這是什麼魚啊?求解答,誰知道這是什麼魚啊?求解答!

如圖不宜分辨 可bai能是 鯻科 terapontidae 鯻屬du terapon 魚類 下圖為zhi 條紋鯻 terapon theraps 鯻 俗dao 稱 花身仔 斑吾 雞仔魚 三專抓仔 體高屬而側扁,呈長橢圓形 頭背平直 體背部輪廓約略同於腹部輪廓。體被細小櫛鱗,頰部及鰓蓋上亦被鱗 背及臀...