先上**:
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 == k:
people[index] = 0
number -= 1
temp = 0
j += 1
for index, i in enumerate(people):
if i != 0:
res = index + 1
return res
約瑟夫環指的是有number個人圍著圈坐, 按1到number編號,從編號1開始報數,當報到k的時候該人自動退出,從下乙個人開始重新報數,直到最後剩乙個人,求此人的編號。
結果驗證為:
print(circle(9,2))
3
print(circle(8,2))
1
python實現約瑟夫環
約瑟夫環 約瑟夫問題 是乙個數學的應用問題 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。通常解決這類問題時我們把編號從0 n 1,最後結果 1即...
python實現約瑟夫環
約瑟夫環問題的邏輯很簡單就是一群人圍成乙個圈指定從其中乙個人開始報數,指定報數到多少,報到這個數的人就出局,剩下的人從剛出局的人的位置的下乙個人繼續開始遊戲。看起來比文字描述直觀,我就直接上 了。def ysf sum,bsit,distance,survive sum總的人數,bsit報數開始的位...
使用python實現約瑟夫環
約瑟夫環,通俗的講就是n個人圍著圓桌坐一圈,從第m個人開始從1報數,報數到k數的人出局,之後的人又從1開始報數,直到所有人都出局。以下 為python模擬約瑟夫環出局人員的序號順序 人數有30人,從第乙個人的位置開始報數,數到9則出局,之後又從1開始報數,達到出局人數時結束。約瑟夫環 people ...