中字幕视频在线永久在线观看免费,亚洲av色香蕉一区二区蜜桃小说 ,亚洲精品中文字幕无码蜜桃,亚洲av无码一区二区三区在线播放,亚洲国产日韩a综合在线

當(dāng)前位置: 首頁 > 學(xué)科分類 > 數(shù)學(xué)

約瑟夫環(huán)數(shù)學(xué)公式,約瑟夫環(huán) 公式

  • 數(shù)學(xué)
  • 2023-06-30

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

約瑟夫定理公式

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

首先,我們可以將圓看作一個(gè)鐘表,將23個(gè)區(qū)域從12點(diǎn)開始順時(shí)針依次編號(hào)為1到23。然后,從任意一個(gè)標(biāo)記開始,順時(shí)針數(shù)7個(gè)區(qū)域,將這個(gè)區(qū)域圈起來。接著,從剛才圈起來的納敏區(qū)域開始,再次順洞鋒枝時(shí)針數(shù)7個(gè)區(qū)域,再將這個(gè)區(qū)域圈起來。如此往復(fù),直到將所有的標(biāo)記所在的區(qū)域圈起來為止。

實(shí)際操作時(shí),我們可以使用一支筆或者手指,從標(biāo)記開始順時(shí)針移動(dòng)數(shù)個(gè)區(qū)域,然后用另一種顏色的筆或者手指將這個(gè)區(qū)域圈起來。然后再從圈起來的區(qū)域開始繼續(xù)移動(dòng)數(shù)個(gè)區(qū)域,重復(fù)上述操作,直到所有的標(biāo)記所在的區(qū)域都被圈出來。

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

總之,23-7圈一圈的方法雖然看起來有些復(fù)雜,但只要按照順時(shí)針數(shù)7個(gè)區(qū)域的方法進(jìn)行圈選,就可以準(zhǔn)確地圈出所有的標(biāo)記所在的區(qū)域。

概率論約瑟夫環(huán)問題

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

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

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

約瑟夫環(huán)數(shù)原理

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

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

約瑟夫環(huán)數(shù)學(xué)解法

約瑟夫算法:n個(gè)人圍成一圈,每人有一個(gè)各不相同中敗的編號(hào),選擇一

個(gè)人作為起點(diǎn),然后順時(shí)針從1到k數(shù)數(shù),每數(shù)到k的人退出圈子,圈

子縮小,然后從下一個(gè)人繼續(xù)從1到k數(shù)數(shù),重復(fù)上面過程。求最后推

出圈子的那個(gè)人原來的編號(hào)。

約瑟夫算法可以用循環(huán)鏈表和數(shù)組來解(這兩個(gè)我會(huì)),下面2個(gè)程序

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

證明和講解,

程序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證明:

假設(shè)數(shù)到第p個(gè)數(shù)時(shí)遇到的數(shù),和數(shù)到第x個(gè)數(shù)到遇到的數(shù)一樣,且p -

n < x < p,而且x % m != 0, 否則會(huì)被跳過和晌拿第個(gè)p數(shù)遇到的數(shù)肯定

不一樣,那么說明數(shù)了x個(gè)數(shù)之后再數(shù)一圈就數(shù)到了第p個(gè)數(shù),而數(shù)一圈

數(shù)過的數(shù)應(yīng)該是n減去要跳過的數(shù)賣謹(jǐn)顫,因?yàn)橐呀?jīng)數(shù)過了x個(gè)數(shù),所以要跳過

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

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

x < p, 求解x

因?yàn)閤 % 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)

因?yàn)閤 % 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 )]

由于計(jì)算機(jī)算整數(shù)除法直接就取整了,所以遞歸時(shí)就寫成

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

程序2證明:

Josephus(約瑟夫)問題的數(shù)學(xué)方法(轉(zhuǎn))約瑟夫 (轉(zhuǎn))

無論是用鏈表實(shí)現(xiàn)還是用數(shù)組實(shí)現(xiàn)都有一個(gè)共同點(diǎn):要模擬整個(gè)

游戲過程,不僅程序?qū)懫饋肀容^煩,而且時(shí)間復(fù)雜度高達(dá)O(nm),當(dāng)n

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

內(nèi)出結(jié)果的。

約瑟夫環(huán)遞歸公式

23-7圈一圈是指在一個(gè)圓形區(qū)域內(nèi),從起點(diǎn)開始,連陪旅好續(xù)圈數(shù)為23圈,每圈連續(xù)7個(gè)數(shù)字,最后停在第23圈的第7個(gè)數(shù)字上。圈數(shù)和數(shù)字的順序均為順時(shí)針方向。

這個(gè)問題可以用數(shù)學(xué)方法來解決。我們可以將圓形區(qū)域看作一個(gè)由360個(gè)數(shù)字組成的環(huán)形,然后按照順時(shí)針方向從1開始逐個(gè)標(biāo)記每個(gè)數(shù)字,直到360。接下來,我們可以用以下公式來計(jì)算最后停留的數(shù)字:

起始數(shù)字 + (圈數(shù)-1) * 每圈數(shù)字?jǐn)?shù) + 停留數(shù)字位置

其中,起始數(shù)字為1,圈數(shù)為23,每圈數(shù)字?jǐn)?shù)為7,停留數(shù)字位置為第7個(gè)。將這些值代入公式中,即可得到最后停留的數(shù)字為179。

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

對(duì)策為:使用數(shù)學(xué)方法計(jì)算,可以大大縮短時(shí)間,提高計(jì)算準(zhǔn)確性。如果需要解決類似的問題,也可以采用類似的數(shù)學(xué)方法來解決。

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

以上就是約瑟夫環(huán)數(shù)學(xué)公式的全部?jī)?nèi)容,我們知道第一個(gè)人(編號(hào)一定是m%n-1) 出列之后,剩下的n-1個(gè)人組成了一個(gè)新的約瑟夫環(huán)(以編號(hào)為k=m%n的人開始):k k+1 k+2 n-2, n-1, 0, 1, 2, k-2 并且從k開始報(bào)0。

猜你喜歡

話題標(biāo)簽

  • 馮姓的來源和歷史,馮姓皇帝一共36位
  • 七年級(jí)歷史教學(xué)計(jì)劃,春季學(xué)期七年級(jí)歷史教學(xué)計(jì)劃
  • 物理學(xué)在生活中的應(yīng)用,100個(gè)生活中的物理現(xiàn)象
  • 英語翼課網(wǎng),翼課網(wǎng)