約瑟夫優化

2021-10-10 21:11:17 字數 916 閱讀 9833

%

%writefile ysf.py

defmove

(players,step)

: num = step -

1while num >0:

tmp = players.pop(0)

num = num -

1return players

defplay

(players, step, alive)

:"""

模擬約瑟夫問題的函式

input:

players: 參加遊戲的人數;

step: 數到step數字的人數淘汰;

alive: 倖存人數,遊戲結束。

output:

返回乙個列表,列表中的元素為倖存者編號。

"""l =

[i for i in

range(1

,players+1)

]while

len(l)

>alive:

l = move(l,step)

l.pop(0)

return

(l)players_num =

int(

input

("請輸入參加遊戲的人數"))

step_num =

int(

input

("請輸入淘汰的數字"))

alive_num =

int(

input

("請輸入倖存的人數"))

alive_list = play(players_num, step_num, alive_num)

print

(alive_list)

writing ysf.py

約瑟夫問題(優化優化再優化)

約瑟夫環是乙個數學的應用問題 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。1 模擬方法 2 數學方法 模擬方法就是所謂的乙個個模擬,乙個乙個出列...

約瑟夫環的數學優化

首先,約瑟夫環的數學優化方法為 為了討論方便,先把問題稍微改變一下,並不影響原意 問題描述 n個人 編號0 n 1 從0開始報數,報到 m 1 的退出,剩下的人繼續從0開始報數。求勝利者的編號。我們知道第乙個人 編號一定是 m 1 n 出列之後,剩下的n 1個人組成了乙個新的約瑟夫環 以編號為k m...

約瑟夫問題 約瑟夫環

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