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

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

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

瀏覽:175日期: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久久,三上悠亚国产精品一区二区三区
欧美一区自拍| 丁香婷婷久久| 欧美日韩视频一区二区三区| 日本综合字幕| 激情中国色综合| 成人一区而且| 日韩国产综合| 婷婷国产精品| 亚洲香蕉久久| 国产精品久久久久久久久久妞妞 | 欧美亚洲日本精品| 老司机免费视频一区二区| 欧美欧美黄在线二区| 日韩国产欧美一区二区三区| 国产欧美三级| 97国产精品| 亚洲高清av| 性色一区二区| 国产精品中文| av资源中文在线| 免费av一区二区三区四区| 久久国产精品亚洲77777| 在线一区二区三区视频| 国产极品一区| 快播电影网址老女人久久| 亚洲欧洲午夜| 亚洲麻豆一区| 久久中文字幕一区二区三区| 国产不卡精品| 欧美亚洲国产精品久久| 亚洲欧美在线专区| 免费亚洲婷婷| 成人台湾亚洲精品一区二区| 亚洲免费福利一区| 日韩欧美一区二区三区在线观看| 日韩欧美国产精品综合嫩v| 婷婷成人在线| 午夜视频一区二区在线观看| 91成人精品观看| 国内精品美女在线观看| av亚洲免费| 日本欧美大码aⅴ在线播放| 国产一区二区三区不卡视频网站 | 播放一区二区| 久久国产福利| 日韩精品亚洲专区在线观看| 精品福利久久久| 天堂av在线一区| 欧美激情综合| 亚洲女同中文字幕| 久久久国产精品网站| 狠狠操综合网| 国产情侣一区在线| 1024精品久久久久久久久| 国产精品久久久久久模特| 国产黄色一区| 亚洲女同中文字幕| 国产伦乱精品| 性欧美69xoxoxoxo| 国产一区二区精品久| 日韩精品免费一区二区三区| 日韩成人精品一区二区三区 | 日韩国产一区二区三区| 日韩二区在线观看| 蜜桃成人av| 国产精品白丝一区二区三区| 亚洲欧美日韩国产一区二区| 日韩一级欧洲| 91免费精品| 午夜电影一区| 午夜日韩av| 欧美日韩视频网站| 国产精品流白浆在线观看| 蜜桃久久av一区| 四虎国产精品免费观看| 国产精品天堂蜜av在线播放| 视频一区欧美日韩| 香蕉久久99| 亚洲毛片一区| 在线观看视频免费一区二区三区| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 麻豆国产91在线播放| 亚洲在线久久| 国产视频久久| 亚洲国产成人精品女人| 精品国产鲁一鲁****| 蜜臀av性久久久久蜜臀aⅴ流畅 | 精品欧美一区二区三区在线观看| 91精品国产自产精品男人的天堂| 午夜一级久久| 在线观看亚洲精品福利片| 国产成人精品999在线观看| 日本欧美一区二区| 亚洲欧洲美洲国产香蕉| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久字幕精品一区| 国产精品乱战久久久| 欧美午夜网站| 欧美色综合网| 日韩精品网站| 久久只有精品| 麻豆精品在线视频| 国产精品香蕉| 国产精品久久久久久久免费软件| 久久激情av| 国产精品亚洲欧美日韩一区在线| 天堂va蜜桃一区二区三区| 99日韩精品| 蜜桃伊人久久| 日韩一区精品字幕| 视频一区中文字幕精品| 四虎在线精品| 欧美亚洲综合视频| 国产精品最新| 你懂的国产精品永久在线| 日本午夜精品久久久久| 亚洲三级精品| 欧美在线精品一区| 欧美精品影院| 99国产精品私拍| 亚洲综合电影一区二区三区| 99在线精品免费视频九九视 | 精品免费视频| 岛国av在线网站| 国产91精品对白在线播放| 亚洲主播在线| 另类激情亚洲| 婷婷亚洲精品| 麻豆精品视频在线观看免费| 免费在线欧美黄色| 日韩国产一区二区| 欧美一区三区| 蜜桃av一区| 日韩和欧美一区二区三区| 麻豆精品少妇| 视频二区不卡| 日韩一级精品| 久久精品av麻豆的观看方式| 国产精品久久久久久久久久10秀| 国户精品久久久久久久久久久不卡| 在线亚洲激情| 亚洲我射av| 麻豆精品在线| 亚洲天堂av影院| 久草免费在线视频| 亚洲欧美综合| 亚洲精品在线a| 国产剧情在线观看一区| 秋霞国产精品| 欧美精品不卡| 国产综合精品一区| 国产亚洲第一伦理第一区| 久久毛片亚洲| 久久麻豆视频| 好看的亚洲午夜视频在线| 国产亚洲字幕| 日韩在线观看中文字幕| 国产精品白丝一区二区三区| 99久精品视频在线观看视频| 日本不卡不码高清免费观看 | 亚洲国产一区二区在线观看| 日本色综合中文字幕| 秋霞国产精品| 欧美日韩在线精品一区二区三区激情综合 | 免费在线观看不卡| 另类综合日韩欧美亚洲| 免费日韩精品中文字幕视频在线| 麻豆视频久久| 亚洲日韩视频| 欧美在线资源| 亚洲国产福利| 国产精品一区二区99| 亚洲免费一区三区| 黄色亚洲免费| 性欧美videohd高精| 国产精品免费99久久久| 一本综合精品| av一区二区高清| 黄色在线网站噜噜噜| 偷拍亚洲精品| 999在线观看精品免费不卡网站| 日韩欧美中文| 国产精品免费精品自在线观看| 亚洲精品自拍| 国产在线观看www| 嫩呦国产一区二区三区av| 日本va欧美va瓶| 香蕉精品久久| 你懂的网址国产 欧美| 日韩精品亚洲aⅴ在线影院| 美女视频一区在线观看| 亚洲色图网站| 美女视频黄 久久| 欧美在线综合| 精品国产亚洲日本| 日韩精品亚洲一区二区三区免费| 日本在线不卡视频| 国产va在线视频| 亚洲精品美女91| 久久视频精品|