基本約瑟夫環問題詳解

2022-05-07 03:57:10 字數 508 閱讀 7891

本人水平有限,題解不到為處,請多多諒解

本蒟蒻謝謝大家**

推薦部落格:傳送門

首先讓我們來看一下這一段:

n-2 ---> (k1+n-2)%n1(n1為當前序列的總人數,因為是迴圈的序列,k1+n-1可能大於總人數)

至關重要,比如:我們已經知道當前的最後乙個出列的位置為f ,設下一次最後乙個出列的位置為ans

ans=(f+m)%n;

相當於是在f後往後再報m個數即可。

遞推公式:

這樣的話,我們就得到了遞推公式,由於編號是從0開始的,那麼我們可以令

f[1] = 0;          //當乙個人的時候,出隊人員編號為0

f[n] = (f[n-1] + m)%n     //m表示每次數到該數的人出列,n表示當前序列的總人數

約瑟夫環問題詳解

講乙個比較有意思的故事 約瑟夫是猶太軍隊的乙個將軍,在反抗羅馬的起義中,他所率領的軍隊被擊潰,只剩下殘餘的部隊40餘人,他們都是寧死不屈的人,所以不願投降做叛徒。一群人表決說要死,所以用一種策略來先後殺死所有人。於是約瑟夫建議 每次由其他兩人一起殺死乙個人,而被殺的人的先後順序是由抽籤決定的,約瑟夫...

C 約瑟夫環問題詳解

有一家公司,這個公司有一位老闆和13名程式設計師,每天下班前老闆都會組織他們玩一次遊戲,遊戲的勝利者可以不加班,失敗者需要加班2小時。遊戲規則如下 一張圓桌共有13個座位,從1到13編號,遊戲開始前老闆會說出今天開始報數的座位編號start和淘汰序號k。然後13名程式設計師開始搶位置,每個位置只能容...

約瑟夫問題 約瑟夫環

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