1樓:嗯嗯
乙個約瑟夫環問題,先給這n個人編號,存在列表中,報數不報到k的人移到列表尾部,報到k的人就彈出列表
defjosephus
(population,k
):person
=list
(range(1
,population+1
))number=1
while
len(
person
)>1:
ifnumber==k
:person
.pop(0
)number=1
else
:person.(
person
.pop(0
))number+=1
return
person[0]
2樓:白骨小爪
def f(n,m):
return 1 if n == 1 else (f(n-1,m) + m - 1) % n + 1
3樓:吳小六
defcall_num(n
,k):# 大家站一對,從一開始編號
lst_people=[
n-iforiin
range(n
)]# 遊戲一直繼續直到佇列只有1人
while
len(
lst_people
)>1:
n=0# 一輪遊戲開始
while
True
:# n為每次報的數n+=
1print
('報數:',n
,'當前佇列'
,lst_people
)# 報到k,報數人出局,則結束本輪遊戲,從1開始報數ifn==k
:lst_people
.pop
()break
# 報完數就加到隊尾
lst_people
.insert(0
,lst_people
.pop
())# 此時報到k移除第乙個人
return
lst_people[0
]# 測試
print(f
'最後剩下為號')報數
:1當前佇列[3
,2,1
]報數:2
當前佇列[1
,3,2
]報數:3
當前佇列[2
,1,3
]報數:4
當前佇列[3
,2,1
]報數:5
當前佇列[1
,3,2
]報數:1
當前佇列[1
,3]報數
:2當前佇列[3
,1]報數
:3當前佇列[1
,3]報數
:4當前佇列[3
,1]報數
:5當前佇列[1
,3]最後剩下為1號
這道題該怎麼解
利用放縮定出 無窮大的階。具體而言 frac23 frac i 1 sqrt frac23 i sqrt i i 1 sqrt eeimg 1 第乙個不等號可以通過 frac a b eeimg 1 得到 所以 frac32n eeimg 1 當 時,對充分大的 有 c n 1 eeimg 1 所以...
這道英語語法題應該怎麼解
Walk inCloud 虛擬語氣。were we放句首等於if we were.對將來的虛擬,條件句謂語可用1.過去式 2.should 動詞原形 3.were to do。 秋兒英語 這個句子是虛擬語氣的用法,虛擬語氣可以這樣理解,就是句子中,從句中所說明的事情與事實相反或不可能實現。就用虛擬語...
這個Python題咋解呀
from random import choices ilist choices list range 1 11 k 200000 def fuc ilist d 1 z 1foriin range 1 len ilist if ilist i 1 1 ilist i z 1 d.z else d ...