亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

提升Python效率之使用循環(huán)機制代替遞歸函數(shù)

系統(tǒng) 1699 0

斐波那契數(shù)列

當(dāng)年,典型的遞歸題目,斐波那契數(shù)列還記得嗎?

            
def fib(n):
  if n==1 or n==2:
    return 1
  else:
    return fib(n-1)+fib(n-2)
          

當(dāng)然, 為了程序健壯性,加上 ?try...except...

            
def fib(n):
  if isinstance(n, int):
    print('兄弟,輸入正整數(shù)哈')
    return
  try:
    if n==1 or n==2:
      return 1
    elif n <= 0:
      print('兄弟別輸入0或負(fù)數(shù)呀')
    else:
      return fib(n-1)+fib(n-2)
  except RecursionError:
    print('兄弟,超過了最大遞歸深度'
          

是的,無論時間還是空間復(fù)雜度,遞歸真的是不太好使哈!這是遞歸的寫法:

            
def fib(n):
  if n==1 or n == 2:
    return 1
  a, b = 1, 1
  for i in range(2, n):
    a, b = b, a+b
  return b
          

我稍微解釋三點:

  • 為啥是 ?range(2, n) ,因為,斐波那契數(shù)列從?1 開始,所以?fib(n) 就是數(shù)列的第?n 項?
  • 由于前兩項都為?1 ,所以要少兩項,為? range(2, n) (要循環(huán)?n-2 次)
  • a, b = b, a+b 這里你也許也有困惑,我簡單說說,一般Python解釋器會將逗號分隔的變量直接看做一個元組,?
  • 又因為,解釋器先執(zhí)行等式右邊的,所以,這樣相當(dāng)于?元組拆包
  • a, b = b, a+b 這句話的精髓在于,在等式右邊將?b 視為 ?fib(n-2) ,將?a+b 視為?fib(n-1)

楊輝三角

同樣,先寫遞歸寫法(我這里不考慮特殊情況了,時間有限):

            
def YH_tri(a, b):
  if a == b or b == 0:
    return 1
  else:
    return YH_tri(a-1, b)+YH_tri(a-1, b-1)
          

老鐵們自己先想想該怎么寫??

總結(jié)

以上所述是小編給大家介紹的提升Python效率之使用循環(huán)機制代替遞歸函數(shù),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久在线视频免费观看 | 国产免费一级在线观看 | 欧美一级毛片不卡免费观看 | 久久久久国产免费 | 中文字幕欧美日韩一 | 午夜色网| 国产成人午夜性a一级毛片 国产成人午夜性视频影院 国产成人系列 | 四虎永久影院永久影库 | 亚洲狼人综合干 | 天天干天天拍天天射 | 羞羞网页 | 97婷婷狠狠成人免费视频 | 米奇精品一区二区三区 | 欧美老妇69交 | 成人毛片免费视频播放 | 在线观看麻豆国产精品 | 91大神在线精品视频一区 | 波多野结衣高清在线播放 | 精品一区二区三区的国产在线观看 | 久久精品国产福利 | 香蕉久久网站 | 久久久久夜色精品波多野结衣 | 成人毛片大全 | 国产成人精品一区二区三区 | 欧美不卡精品中文字幕日韩 | 欧美色p| 一级毛片免费视频日本 | 亚洲图片天堂 | 久久成人免费播放网站 | 国产成人在线免费视频 | 模特精品一区二区三区 | 国产精品久久久久久久久久久不卡 | 国产精品不卡在线 | 老妇毛片 | 欧美手机手机在线视频一区 | 狠狠色很很在鲁视频 | 精品一区二区免费视频 | 欧美国产成人精品一区二区三区 | 精品无码久久久久久国产 | 综合图区亚洲白拍在线 | 爱爱免费网站 |