當前位置: 首頁 > 學科分類 > 數學

約瑟夫環數學公式,約瑟夫環 公式

  • 數學
  • 2023-06-30

約瑟夫環數學公式?則獲勝者在上一局的編號是[(m-1)+(k+1)]=m+k(m-1代表死的那個人的編號,而k+1代表死的那個人的后面第n個人的編號),即在上一局中他是第m+k+1個人。那么,約瑟夫環數學公式?一起來了解一下吧。

約瑟夫定理公式

23-7圈一圈是指將一個圓基稿分成23份,然后在其中7個相鄰的部分上打上標記,那么如何圈出這7個標記所在的區域呢?

首先,我們可以將圓看作一個鐘表,將23個區域從12點開始順時針依次編號為1到23。然后,從任意一個標記開始,順時針數7個區域,將這個區域圈起來。接著,從剛才圈起來的納敏區域開始,再次順洞鋒枝時針數7個區域,再將這個區域圈起來。如此往復,直到將所有的標記所在的區域圈起來為止。

實際操作時,我們可以使用一支筆或者手指,從標記開始順時針移動數個區域,然后用另一種顏色的筆或者手指將這個區域圈起來。然后再從圈起來的區域開始繼續移動數個區域,重復上述操作,直到所有的標記所在的區域都被圈出來。

需要注意的是,每次圈起來的區域要緊貼著上一次圈起來的區域,不能有遺漏和重復的部分。此外,如果最后發現有標記所在的區域沒有被圈起來,需要重新檢查圈的步驟是否正確。

總之,23-7圈一圈的方法雖然看起來有些復雜,但只要按照順時針數7個區域的方法進行圈選,就可以準確地圈出所有的標記所在的區域。

概率論約瑟夫環問題

答案:23-7圈一圈的方法是先圈第23個銷嘩人,然后再每隔7個人圈一個人,直到所有人都被圈過為止。

解釋:這個問題其實就是一個約瑟夫環問題,即在一群人中按照睜遲一定規律依次淘汰人,最后留下的人是誰。在這個問題中,我們需要先確定起始點,也就是第一個被圈的人是誰,然后每次按照規律圈定下一個被淘汰的人,直到所有人都被淘汰完畢。

拓展:約瑟夫環是一個經典的數悉斗李學問題,它的應用涉及到很多領域,比如密碼學、計算機算法等。除了23-7圈一圈這種特殊情況,還有很多不同的規律和初始條件,都可以形成不同的約瑟夫環問題。對于這些問題,我們可以通過數學方法來求解,得到最終留下的人是誰。

約瑟夫環數原理

約瑟夫環(Josephus)問題是由古羅馬的史學家約瑟夫(Josephus)提出的,他參加并記錄了公元66—70年猶太人反抗羅馬的起義。約瑟夫作為一個將軍,設法守住了裘達伯特兄嘩啟城達蘆衫47天之久,在城市淪陷之后,他和40名死硬的將士在附近的一個洞穴中避難。在那里,這些叛亂者表決說“要投降毋寧死”。于是,約瑟夫建議每個人輪流殺死他旁邊的人,而這個順序是由抽簽決定的。約瑟夫有預謀地抓到了最后一簽,并且,作為洞穴中的兩個幸存者之一,他說服了羨如他原先的犧牲品一起投降了羅馬。

約瑟夫環問題的具體描述是:設有編號為1,2,……,n的n(n>0)個人圍成一個圈,從第1個人開始報數,報到m時停止報數,報m的人出圈,再從他的下一個人起重新報數,報到m時停止報數,報m的出圈,……,如此下去,直到所有人全部出圈為止。當任意給定n和m后,設計算法求n個人出圈的次序。

約瑟夫環數學解法

約瑟夫算法:n個人圍成一圈,每人有一個各不相同中敗的編號,選擇一

個人作為起點,然后順時針從1到k數數,每數到k的人退出圈子,圈

子縮小,然后從下一個人繼續從1到k數數,重復上面過程。求最后推

出圈子的那個人原來的編號。

約瑟夫算法可以用循環鏈表和數組來解(這兩個我會),下面2個程序

都是用來解決該算法的,其中第(2)直接給出答案,每個程序都有

證明和講解,

程序1(遞歸法):

#include

#include

int main(void)

{

int n;

int m;

int i = 0;

int p;

scanf("%d%d", &n, &m);

while (++i <= n )

{

p = i * m;

while (p>n)

{

p = p - n + (p-n-1) / (m-1);

}

printf("%d\n", p);

}

return 0;

}

程序2(遞推法):

#include

int main(void)

{

int i;

int s = 0;

int n;

int m;

scanf("%d%d", &n, &m);

for (i = 2; i <= n; i++)

{

s = (s + m) % i;

}

printf("最后的獲勝者是: %d\n", s + 1);

return 0;

}

程序1證明:

假設數到第p個數時遇到的數,和數到第x個數到遇到的數一樣,且p -

n < x < p,而且x % m != 0, 否則會被跳過和晌拿第個p數遇到的數肯定

不一樣,那么說明數了x個數之后再數一圈就數到了第p個數,而數一圈

數過的數應該是n減去要跳過的數賣謹顫,因為已經數過了x個數,所以要跳過

[x / m]個數( []表示取整數部分 ),所以x + n - [x / m] = p

問題轉化為: p - n = x - [x / m]...(1),且 x % m != 0, p - n <

x < p, 求解x

因為x % m != 0 => x / m - 1 < [x / m] < x / m

=> x - x / m + 1 > x - [x / m] > x - x / m

=> [x - x / m + 1] >= x - [x / m] > [x - x / m]

=> [x - x / m] + 1 >= x - [x / m] > [x - x / m]

=> [x - x / m] + 1 >= x - [x / m] >= [x - x /

m] + 1

=> [x - x / m] + 1 = x - [x / m]

( 代入(1)式 )=> p - n - 1 = [x - x / m] = [x * ( m - 1 ) /

m] ... (2)

因為x % m !=0 且 ( m - 1 ) % m != 0 => ( x * ( m - 1 ) ) %

m != 0

由(2)式 => 0 < x * ( m - 1 ) - m * ( p - n - 1 ) <= m - 1

由左邊: => m * ( p - n - 1 ) < x * ( m - 1 )

=> m * ( p - n - 1 ) / ( m - 1 ) < x

=> [m * ( p - n - 1 ) / ( m - 1 )] < x

=> [m * ( p - n - 1 ) / ( m - 1 )] + 1 <= x ...(3)

由右邊: => x * ( m - 1 ) - ( m - 1 ) <= m * ( p - n - 1 )

=> ( x - 1 ) * ( m - 1 ) <= m * ( p - n - 1 )

=> x - 1 <= m * ( p - n - 1 ) / ( m - 1 )

=> x - 1 <= [m * ( p - n - 1 ) / ( m - 1 )]

=> x <= m * ( p - n - 1 ) / ( m - 1 ) + 1 ...(4)

由(3),(4) => x = [m * ( p - n - 1 ) / ( m - 1 )] + 1

= [ p - n - 1 + ( p - n - 1 ) / ( m - 1 )] +

1

= p - n - 1 + [( p - n - 1 ) / ( m - 1 )] + 1

= p - n + [( p - n - 1 ) / ( m - 1 )]

由于計算機算整數除法直接就取整了,所以遞歸時就寫成

p = p - n + ( p - n - 1 ) / ( m - 1 )

程序2證明:

Josephus(約瑟夫)問題的數學方法(轉)約瑟夫 (轉)

無論是用鏈表實現還是用數組實現都有一個共同點:要模擬整個

游戲過程,不僅程序寫起來比較煩,而且時間復雜度高達O(nm),當n

,m非常大(例如上百萬,上千萬)的時候,幾乎是沒有辦法在短時間

內出結果的。

約瑟夫環遞歸公式

23-7圈一圈是指在一個圓形區域內,從起點開始,連陪旅好續圈數為23圈,每圈連續7個數字,最后停在第23圈的第7個數字上。圈數和數字的順序均為順時針方向。

這個問題可以用數學方法來解決。我們可以將圓形區域看作一個由360個數字組成的環形,然后按照順時針方向從1開始逐個標記每個數字,直到360。接下來,我們可以用以下公式來計算最后停留的數字:

起始數字 + (圈數-1) * 每圈數字數 + 停留數字位置

其中,起始數字為1,圈數為23,每圈數字數為7,停留數字位置為第7個。將這些值代入公式中,即可得到最后停留的數字為179。

實際解答方式為:可以用筆和紙模擬出這個過程,即按照順時針方向一個一個地標記數字,直到停留在第23圈的第7個數字上。這種方法比較直觀,但比較耗時。

對策為:使用數學方法計算,可以大大縮短時間,提高計算準確性。如果需要解決類似的問題,也可以采用類似的數學方法來解決。

拓展說明:這個問題實鎮盯際上是一個經典的數學問題,被稱為“圓周率的近似值問題蘆鉛”。這個問題在歷史上曾經引起過很多數學家的關注和研究,也是計算機科學的基礎之一。除了數學方法,還有一些其他的算法可以用來解決這個問題,比如遞歸算法、分治算法等。

以上就是約瑟夫環數學公式的全部內容,我們知道第一個人(編號一定是m%n-1) 出列之后,剩下的n-1個人組成了一個新的約瑟夫環(以編號為k=m%n的人開始):k k+1 k+2 n-2, n-1, 0, 1, 2, k-2 并且從k開始報0。

猜你喜歡

主站蜘蛛池模板: 精品无码成人片一区二区98 | 变态SM天堂无码专区| 亚洲国产成人精品无码区二本| 人妻aⅴ中文字幕无码| 亚洲AV无码乱码在线观看牲色| 久久精品国产亚洲AV无码偷窥| av色欲无码人妻中文字幕| 亚洲av无码不卡一区二区三区| 免费无码又爽又刺激聊天APP| 国产aⅴ无码专区亚洲av| 一本大道久久东京热无码AV| 18禁免费无码无遮挡不卡网站| 国产精品国产免费无码专区不卡| 人妻丰满熟妇av无码区不卡| 免费无码又爽又刺激一高潮| 免费无码又黄又爽又刺激| 中文字幕无码免费久久99| 无码无遮挡又大又爽又黄的视频| 秋霞鲁丝片无码av| 国产精品无码一区二区在线观| 日韩乱码人妻无码中文字幕久久| 国产色综合久久无码有码 | 亚洲AV无码AV男人的天堂| 欧日韩国产无码专区| 波多野结衣VA无码中文字幕电影| 午夜福利无码不卡在线观看 | 少妇伦子伦精品无码STYLES| 中文无码vs无码人妻 | 国产精品无码av片在线观看播| 亚洲中文字幕无码av| 2024你懂的网站无码内射 | 成人免费无码大片a毛片| 亚洲最大中文字幕无码网站| 久久久久精品国产亚洲AV无码| 人妻丰满AV无码久久不卡| 无码一区二区三区视频| 免费A级毛片无码A∨免费 | 好了av第四综合无码久久| 国产精品无码无卡在线观看久 | 国产成人无码免费网站| 少妇无码太爽了在线播放|