python實現約瑟夫環

2021-08-07 07:11:56 字數 496 閱讀 1477

約瑟夫環(約瑟夫問題)是乙個數學的應用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下乙個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直到圓桌周圍的人全部出列。通常解決這類問題時我們把編號從0~n-1,最後結果+1即為原問題的解 例:

一排人,編號從1開始到17。所有人按序號圍成乙個圈,從編號1開始,挨個報數,從1開始,報到3則出局,然後再次從1開始報數,直到只剩下乙個人。提問,最後留下的是編號幾

def ysf(n,k,m):

list1 = range(1,n+1)

t = k-1

for i in range(n-1):

t = (t+m-1)%len(list1)

print "out:",list1.pop(t)

print "留下的編號為: "+str(list1[0])

ysf(17,1,3)

python實現約瑟夫環

約瑟夫環問題的邏輯很簡單就是一群人圍成乙個圈指定從其中乙個人開始報數,指定報數到多少,報到這個數的人就出局,剩下的人從剛出局的人的位置的下乙個人繼續開始遊戲。看起來比文字描述直觀,我就直接上 了。def ysf sum,bsit,distance,survive sum總的人數,bsit報數開始的位...

用python實現約瑟夫環

先上 def circle number,k length number people for index in range number j 0 temp 0 res 0 while number 1 index j length if people index 0 temp 1 if temp ...

使用python實現約瑟夫環

約瑟夫環,通俗的講就是n個人圍著圓桌坐一圈,從第m個人開始從1報數,報數到k數的人出局,之後的人又從1開始報數,直到所有人都出局。以下 為python模擬約瑟夫環出局人員的序號順序 人數有30人,從第乙個人的位置開始報數,數到9則出局,之後又從1開始報數,達到出局人數時結束。約瑟夫環 people ...