亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python實(shí)現(xiàn)約瑟夫環(huán)問題的方法

 更新時(shí)間:2016年05月03日 11:46:44   作者:阿涵-_-  
這篇文章主要介紹了Python實(shí)現(xiàn)約瑟夫環(huán)問題的方法,詳細(xì)分析了約瑟夫環(huán)問題的描述、原理與解決方法,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)約瑟夫環(huán)問題的方法。分享給大家供大家參考,具體如下:

題目:0,1,...,n-1這n個(gè)數(shù)字排成一個(gè)圓圈,從數(shù)字0開始每次從這個(gè)圓圈里刪除第m個(gè)數(shù)字。求出這個(gè)圓圈里剩下的最后一個(gè)數(shù)字。

定義函數(shù)f(n,m),表示每次在n個(gè)數(shù)字(0,1,...,n-1)中每次刪除第m個(gè)數(shù)字后最后剩下的數(shù)字。

在n個(gè)數(shù)字中,假設(shè)第一個(gè)被刪除的數(shù)字為k,那么刪除k之后剩下的n-1個(gè)數(shù)字為0~k-1,k 1~n-1,并且下一次刪除從數(shù)字k 1開始計(jì)數(shù)。第二個(gè)序列最后剩下的數(shù)字也就是我們要求的數(shù)字。于是我們對(duì)于剩下的n-1個(gè)數(shù)字重新編號(hào),k 1編號(hào)為0,k 2編號(hào)為1,...,0編號(hào)為n-k-1,1編號(hào)為n-k,k-1編號(hào)為n-2,假設(shè)f(n-1, m) = x,即n-1個(gè)數(shù)中,每次刪除第m個(gè),最后剩下的數(shù)字編號(hào)為x,那么這個(gè)x就對(duì)應(yīng)著原序列(n個(gè)數(shù))中的編號(hào)(x + m) % n。可以得到遞推關(guān)系:

f(n,m)=0, n=1
f(n,m)=[f(n-1,m) + m]%n n>1

Python代碼:

#coding=utf8
'''
題目:0,1,...,n-1這n個(gè)數(shù)字排成一個(gè)圓圈,從數(shù)字0開始每次從這個(gè)圓圈里刪除第m個(gè)數(shù)字。求出這個(gè)圓圈里剩下的最后一個(gè)數(shù)字。
'''
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)

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python中的if判斷語(yǔ)句中包含or問題

    Python中的if判斷語(yǔ)句中包含or問題

    這篇文章主要介紹了Python中的if判斷語(yǔ)句中包含or問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Matlab中的mat數(shù)據(jù)轉(zhuǎn)成python中使用的npy數(shù)據(jù)遇到的坑及解決

    Matlab中的mat數(shù)據(jù)轉(zhuǎn)成python中使用的npy數(shù)據(jù)遇到的坑及解決

    這篇文章主要介紹了Matlab中的mat數(shù)據(jù)轉(zhuǎn)成python中使用的npy數(shù)據(jù)遇到的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 關(guān)于Python如何避免循環(huán)導(dǎo)入問題詳解

    關(guān)于Python如何避免循環(huán)導(dǎo)入問題詳解

    在大型的Python工程中,由于架構(gòu)設(shè)計(jì)不當(dāng),可能會(huì)出現(xiàn)模塊間相互引用的情況。下面這篇文章主要給大家介紹了關(guān)于如何避免Python的循環(huán)導(dǎo)入問題的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • python使用Psutil模塊實(shí)現(xiàn)獲取計(jì)算機(jī)相關(guān)信息

    python使用Psutil模塊實(shí)現(xiàn)獲取計(jì)算機(jī)相關(guān)信息

    psutil 是一個(gè)跨平臺(tái)的庫(kù),用于獲取進(jìn)程和系統(tǒng)運(yùn)行狀態(tài)的信息,這篇文章主要為大家詳細(xì)介紹了python如何調(diào)用psutil模塊實(shí)現(xiàn)獲取計(jì)算機(jī)相關(guān)信息,有需要的小伙伴可以了解下
    2023-11-11
  • 解決Python pip 自動(dòng)更新升級(jí)失敗的問題

    解決Python pip 自動(dòng)更新升級(jí)失敗的問題

    今天小編就為大家分享一篇解決Python pip 自動(dòng)更新升級(jí)失敗的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 解決運(yùn)行django程序出錯(cuò)問題 ''str''object has no attribute''_meta''

    解決運(yùn)行django程序出錯(cuò)問題 ''str''object has no attribute''_meta''

    這篇文章主要介紹了解決運(yùn)行django程序出錯(cuò)問題 'str'object has no attribute'_meta',具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Python OpenCV 圖像區(qū)域輪廓標(biāo)記(框選各種小紙條)

    Python OpenCV 圖像區(qū)域輪廓標(biāo)記(框選各種小紙條)

    這篇文章主要介紹了Python OpenCV 圖像區(qū)域輪廓標(biāo)記(框選各種小紙條),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python 對(duì)key為時(shí)間的dict排序方法

    python 對(duì)key為時(shí)間的dict排序方法

    今天小編就為大家分享一篇python 對(duì)key為時(shí)間的dict排序方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python3 如何解壓縮.gz文件

    python3 如何解壓縮.gz文件

    這篇文章主要介紹了python3 如何解壓縮.gz文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Python進(jìn)程池基本概念

    Python進(jìn)程池基本概念

    這篇文章主要介紹了Python進(jìn)程池基本概念,當(dāng)創(chuàng)建的子進(jìn)程數(shù)量不多時(shí),可以直接利用多處理進(jìn)程中的進(jìn)程動(dòng)態(tài)形成需要的進(jìn)程,下文關(guān)于Python線程池的概念做詳細(xì)介紹,需要的小伙伴可以參考一下
    2022-03-03

最新評(píng)論