日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

使用python從三個角度解決josephus問題的方法

瀏覽:176日期:2022-08-01 08:37:11

0 寫在前面

josephus問題是數據結構教材中的一個常見實例,其問題可以描述為:

設nnn個人圍坐一圈,現在要求從第kkk個人開始報數,報到第mmm個的人退出。然后從下一個人開始繼續按照同樣規則報數并退出,直到所有人退出為止。要求按照順序輸出每個人的序列號。

1 基于數組概念的解法

首先考慮基于python的list和固定大小的數組概念,即將list看作元素個數固定的對象,只改變值而不刪除元素,相當于擺了一圈nnn把椅子,人雖然退出但是椅子還在,我們可以給每個人從111到nnn編號,沒有人的位置用000表示,思路如下:

初始

建立包含nnn個人(編號)的list 找到第kkk個人開始

運行

從kkk的位置開始數到mmm,中間遇到000的就跳過 數到mmm之后,將其值改為000 然后繼續循環,總共循環nnn次(因為每次循環就會退出一個人)

代碼如下:

def josephus_A(n, k, m): people = list(range(1, (n+1))) i = k-1 for num in range(n): count = 0 while count < m: if people[i] > 0:count += 1 if count == m:print(people[i], end=' ')people[i] = 0 i = (i+1) % n # count只是flag,真正記的數是i if num < n-1: print(end=',', ) else: print(' ')

2 基于順序表的解法

順序表是線性表的一種,即表中元素放在一塊足夠大的連續存儲區里,首元素存入存儲區開始位置,其余元素依次存放。順序表在python中的也是list,跟第一種解法不同,當第mmm個人退出需要進行刪除元素的操作,才是順序表。而第一種解法的數組想要刪除并不是那么容易,這里是因為python中沒有內置對數組的支持,所以用list代替,具體可以參照c++中的數組,如果要刪除中間的某個元素的話,必須對后面的元素重新編號。代碼實現如下:

def josephus_L(n, k, m): people = list(range(1, (n+1))) i=k-1 for num in range(n,0,-1): i=(i+m-1)%num print(people.pop(i),end=', ' if num>1 else 'n')

3 基于循環單鏈表的解法

單鏈表即單向鏈接表,典型的就是c++中的鏈表,循環單鏈表就是頭尾相連的單鏈表,也是線性表的一種,這道題目使用循環單鏈表記錄nnn個人圍坐一圈最為契合。我們只需要數到第mmm個結點就刪除,刪除操作對于鏈表來說比較容易,而且不需要有i = (i+1) % n這樣的整除操作。但是問題在于python并沒有像c++那樣有內置對鏈表的支持,因此需要建立一個鏈表的類,建立是比較麻煩的,但是操作比較簡單,如下:

class LNode: # 建立鏈表結點 def __init__(self,elem,next_=None): self.elem=elem self.next=next_class LCList: # 建立循環鏈接表 def __init__(self): self._rear=None def is_empty(self): return self._rear is None def prepend(self,elem): # 前端插入 p=LNode(elem) if self._rear is None: p.next=p # 建立一個結點的環 self._rear=p else: p.next=self._rear.next self._rear.next=p def append(self,elem): # 尾端插入 self.prepend(elem) self._rear = self._rear.next def pop(self): # 前端彈出 if self._rear is None: raise LinkedListUnderflow('in pop of CLList') p = self._rear.next if self._rear is p: self._rear =None else: self._rear.next=p.next return p.elem def printall(self): # 輸出表元素 if self.is_empty(): return p = self._rear.next while True: print(p.elem) if p is self._rear:break p=p.nextclass LinkedListUnderflow(ValueError): # 自定義異常 passclass Josephus(LCList): def __init__(self,n,k,m): LCList.__init__(self) for i in range(n): self.append(i+1) self.turn(k-1) while not self.is_empty(): self.turn(m-1) print(self.pop(),end=('n' if self.is_empty() else ', ')) def turn(self,m): for i in range(m): self._rear = self._rear.next

到此這篇關于使用python從三個角度解決josephus問題的方法的文章就介紹到這了,更多相關python josephus問題內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品永久网址| 中文字幕视频精品一区二区三区| 欧美日韩少妇| 久久免费影院| 欧美日韩a区| 日韩一区精品| 五月激情久久| 福利一区和二区| 国产精品日韩精品在线播放| 中文字幕成人| 亚洲成人精品| 91精品xxx在线观看| 国产精品久久久一区二区| 日韩精品五月天| 亚洲日本欧美| 在线免费观看亚洲| 国产精品毛片在线| 亚洲成人三区| 国产麻豆久久| 波多视频一区| 日韩成人综合| 日韩在线二区| 精品国模一区二区三区| 国产高清不卡| 免费看久久久| 国产极品久久久久久久久波多结野| 日本欧美韩国一区三区| 蜜桃av一区二区在线观看| 天堂va蜜桃一区二区三区| 蜜臀久久99精品久久一区二区| 成人污污视频| 国产拍在线视频| 视频小说一区二区| 激情久久五月| 久久国产精品亚洲77777| 欧美va亚洲va日韩∨a综合色| 91精品啪在线观看国产18| 激情偷拍久久| 在线亚洲一区| 亚洲美女91| 亚洲精品欧美| 国产视频网站一区二区三区| 久久精品国产99国产| 国产suv精品一区| 成人看片网站| 麻豆9191精品国产| 青草国产精品| 美女视频黄久久| 精品国产午夜| 青青久久av| 合欧美一区二区三区| 蜜桃久久久久久| 欧美亚洲一区二区三区| 久久中文字幕一区二区三区| 国产不卡人人| 日韩高清中文字幕一区二区| 欧美亚洲精品在线| 综合激情视频| 国产精品久久乐| 热三久草你在线| 亚洲一区二区三区免费在线观看| 亚洲91在线| 国产成人免费精品| 午夜国产精品视频| 蜜臀av一区二区在线免费观看| 国产欧美日本| 亚洲不卡系列| 中文字幕亚洲精品乱码| 精品亚洲a∨一区二区三区18| 久久精品欧美一区| 亚洲一区二区三区高清| 国产日韩视频在线| 欧美日一区二区| 亚洲ab电影| 亚洲风情在线资源| 亚洲天堂免费| 精品一区电影| 亚洲一卡久久| 精品中国亚洲| 亚洲精品一二三区区别| 欧美一区成人| 久久久精品久久久久久96| 亚洲精品乱码日韩| av综合电影网站| 狠狠干成人综合网| 日本午夜精品一区二区三区电影 | 欧美在线影院| 日韩成人午夜精品| 日韩欧美一区二区三区免费看| 欧美专区18| 日韩av自拍| 亚洲视频电影在线| 日韩亚洲一区在线| 日韩国产欧美在线播放| 日韩欧美精品| 日本午夜精品久久久| 精品欧美激情在线观看| 丰满少妇一区| 欧美一级全黄| 日本中文字幕一区二区| 在线精品福利| 亚洲五月综合| 亚洲影院天堂中文av色| 亚洲综合丁香| 国产一级久久| 国产毛片一区| 国产精品呻吟| 久久电影一区| 欧美资源在线| 在线一区二区三区视频| 男女男精品视频网| 亚洲一区二区小说| 亚洲免费成人av在线| 丝袜亚洲精品中文字幕一区| 亚洲一区二区毛片| 日韩视频一区| 影音国产精品| 国产亚洲精品v| 国产精品人人爽人人做我的可爱 | 另类中文字幕国产精品| 日本精品在线中文字幕| 精品三级久久| 久久伦理在线| 欧美日韩日本国产亚洲在线| 在线综合亚洲| 视频一区二区不卡| 中文字幕日本一区| 美国三级日本三级久久99| 亚洲精选成人| 日韩二区三区在线观看| 国产欧美日韩亚洲一区二区三区| 国产精品嫩模av在线| 久久精品国产亚洲aⅴ| 高清一区二区三区| 日本欧美不卡| 尹人成人综合网| 综合激情网站| 国产欧美一区二区三区精品观看 | 欧美在线观看视频一区| 精品丝袜在线| 欧美aa国产视频| 欧美在线综合| 7m精品国产导航在线| 欧美a级一区二区| 成人国产精品一区二区免费麻豆| 日韩av在线播放网址| 欧美一区二区三区激情视频| 丝袜亚洲精品中文字幕一区| 日本午夜免费一区二区| 久久精品午夜| 欧美中文字幕一区二区| 综合激情视频| 久久久久亚洲精品中文字幕| 婷婷综合六月| 国产毛片久久| 欧美在线不卡| 色在线视频观看| 美日韩精品视频| 国产精品v日韩精品v欧美精品网站| 美女视频免费精品| 极品日韩av| 日本国产亚洲| 日韩av有码| 午夜一级在线看亚洲| 日韩av一级片| 国产精品毛片久久| 国产手机视频一区二区| 国产欧美丝祙| 久久久久蜜桃| 亚欧洲精品视频在线观看| 奇米狠狠一区二区三区| 色偷偷色偷偷色偷偷在线视频| 精品在线91| 欧美亚洲一区二区三区| 理论片午夜视频在线观看| 亚洲欧美日本国产专区一区| 国产精品黄色| 日韩精品免费一区二区在线观看| 午夜一级久久| 久久精品日韩欧美| 亚洲美洲欧洲综合国产一区| 国产精品chinese| 欧美日韩色图| 国产日韩欧美中文在线| 免费观看久久av| 欧美一区免费| 99精品99| 国产成人久久| 日韩中文字幕在线一区| 日本а中文在线天堂| 日韩亚洲精品在线观看| 久久精品一区二区不卡| 国产精品调教| 视频一区中文字幕国产| 成人午夜网址| 日韩精品一区二区三区中文在线| 99久久亚洲精品蜜臀| 国产精品一区二区精品视频观看| 91久久中文| 成人三级高清视频在线看|