這道題怎麼用Python解?

時間 2021-06-02 08:11:40

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 ...