真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python約瑟夫函數(shù) python解決約瑟夫環(huán)問題編程

python類約瑟夫環(huán)原創(chuàng)問題求解 求大神

COUNT?=?60??#?總?cè)藬?shù)

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站設(shè)計(jì)、網(wǎng)站制作與策劃設(shè)計(jì),黃陂網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:黃陂等地區(qū)。黃陂做網(wǎng)站價(jià)格咨詢:028-86922220

INDEX_FIRST?=?2???#?第一次站出來的是2號(hào)

origin?=?list(range(1,?COUNT+1))

res?=?[]

index_label?=?INDEX_FIRST?-?1

index_temp?=?0

while?origin:

index_temp?=?(index_label?+?index_temp)?%?len(origin)

res.append(origin.pop(index_temp))

index_label?+=?1

print(res)

請(qǐng)點(diǎn)擊輸入圖片描述

python3 實(shí)現(xiàn)約瑟夫環(huán)

#coding=GBK

class Node():

def __init__(self,value,next=None):

self.value = value

self.next = next

def createLink(n):

if n=0:

return False

elif n ==1:

return Node(1)

else:

root = Node(1)

tmp = root

for i in range(2,n+1):

tmp.next = Node(i)

tmp = tmp.next

tmp.next = root

return root

def showLink(root):

tmp = root

while True:

print(tmp.value)

tmp = tmp.next

if tmp ==None or tmp == root :

break

def josephus(n,k):

if k ==1 :

print("幸存者:",n)

return

root = createLink(n)

tmp = root

while True:

for i in range(k-2):

tmp = tmp.next

? ? print("killed:",tmp.next.value)

tmp.next = tmp.next.next

tmp = tmp.next

if tmp.next == tmp:

break

print("survive:",tmp.value)

if __name__ =='__main__':

josephus(10,13)

計(jì)算結(jié)果:

killed: 3

killed: 7

killed: 2

killed: 10

killed: 1

killed: 6

killed: 8

killed: 9

killed: 4

survive: 5

Python約瑟夫圓環(huán)的解法

現(xiàn)在有13個(gè)人圍成一個(gè)環(huán),從1開始報(bào)數(shù),數(shù)到3的人離開,寫出程序計(jì)算最后剩下的是誰。

使用while循環(huán)

使用for循環(huán)

使用遞歸

摒棄遞歸,每次步長不為k時(shí)候都把當(dāng)前元素彈出并放到隊(duì)列尾部,從而模擬循環(huán)鏈表結(jié)構(gòu)。進(jìn)一步優(yōu)化,由于列表彈出第一個(gè)元素的復(fù)雜度較高,可以使用雙端隊(duì)列來進(jìn)行優(yōu)化:

【基礎(chǔ)】Python3小程序_約瑟夫生者死者小游戲

30 個(gè)人在一條船上,超載,需要 15 人下船。

于是人們排成一隊(duì),排隊(duì)的位置即為他們的編號(hào)。

報(bào)數(shù),從 1 開始,數(shù)到 9 的人下船。

如此循環(huán),直到船上僅剩 15 人為止,問都有哪些編號(hào)的人下船了呢?

方法一:無算法運(yùn)算

方法二:算法隊(duì)列,利用隊(duì)列先進(jìn)先出的原理

queue模塊學(xué)習(xí)

基礎(chǔ)使用函數(shù)

q=queue.Queue(n) #建立長度為n的先進(jìn)先出隊(duì)列FIFO

q=q=queue.LifoQueue(n) #建立長度為n的后進(jìn)先出隊(duì)列LIFO

q.put() #放入元素

q.get() #取出元素

模塊其他函數(shù)

Python語言之如何實(shí)現(xiàn)約瑟夫環(huán)問題

def josephus(n, m):

if type(n) != type(1) or n = 0:

raise Exception('n must be an integer(n 0)')

if n == 1:

return 0

else:

return (josephus(n - 1, m) + m) % n

if __name__ == '__main__':

print josephus(8, 3)

print josephus(1, 2)

print josephus(0, 2)


文章題目:python約瑟夫函數(shù) python解決約瑟夫環(huán)問題編程
當(dāng)前地址:http://weahome.cn/article/hjscig.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部