国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

處理python遞歸函數及遞歸算法頻次受限制難題

89542767 / 481人閱讀

  本文關鍵闡述了處理python遞歸函數及遞歸算法頻次受限制難題,具有非常好的實用價值,希望能幫助到大家。如有誤或者未考慮到真正的地區,望鼎力相助


  遞歸函數及遞歸算法頻次受限制


  一個函數在外部啟用自身,那么這樣的函數是遞歸函數。遞歸算法要反復應用自身,每遞歸算法一回,越近最后的值。如果一個難題需要由很多類似小問題處理,可以選擇應用遞歸函數。伴隨著遞歸算法的深層次,難題經營規模對比之前都應該所減少。return函數自身的方法保證了遞歸算法的不斷開展,但如果沒有很明確的完畢標準,遞歸算法會無盡繼續下去。因此當已經是問題改進的水平,應當告知函數公式完畢遞歸算法,這個時候就需要很明確的完畢標準。


  比較常見的2個遞歸算法事例:求合、求階乘n!


  求合:sum=n+n(n-1)+…+1


  defsum(n):
  ifn>0:
  returnn+sum(n-1)
  else:
  return0
  new_sum=sum(10)
  print(new_sum)
  #output
  55


  求階乘:n!=1x2x3…xn


  deffactorial(n):
  ifn==1:
  return1
  else:
  returnn*factorial(n-1)
  new_sum=factorial(5)
  print(new_sum)
  #output
  120


  應用遞歸函數需要注意遞歸算法頻次默認限制為1000,如果遞歸算法頻次較多會導致棧溢出難題


  比如


  defsum(n):
  ifn>0:
  return1+sum(n-1)
  else:
  return0
  new_sum=sum(1000)
  print(new_sum)
  會報RecursionError:maximumrecursiondepthexceededincomparison的不正確


  解決問題的方法是改動可遞歸算法次數


  importsys
  sys.setrecursionlimit(1500)#可遞歸算法頻次修改為1500
  defsum(n):
  ifn>0:
  return1+sum(n-1)
  else:
  return0
  new_sum=sum(1000)
  print(new_sum)
  #output
  1000


  改動遞歸算法頻次時需要注意,改動可遞歸算法頻次為1500,遞歸算法深度到不了1500,在1400左右。默認可遞歸算法頻次為1000,遞歸算法深度也到不了1000,到992左右


  如何控制遞歸算法次數


  經常會用到遞歸算法,雖然能解決很多問題,但其缺點很明顯,有可能無法跳出造成死循環,能控制遞歸算法頻次就可以避免這種情況。


  用lua嘗試了幾種方法,


  第一種


  在方式內定義一個變量計數:


  functionrecursionTest()
  localtimes=0
  iftimes<10then
  times=times+1
  recursionTest()
  end
  iftimes==0then
  print("outerround")
  end
  end


  實行下來,是無法限制的,因為局部變量每次都會重置為0。


  第二種


  localrecurTimes=0
  functionrecursionTest2()
  ifrecurTimes<10then
  recurTimes=recurTimes+1
  recursionTest2()
  end
  end

  此方法能控制頻次,可是自變量必須界定在方式身體之外,執行函數前都要先將這一自變量設成0,必須在遞歸方法業務外包一層層,較為繁雜。


  第三類


  functionrecursion(str,t)
  str=stror"firsttime"
  t=tor0
  t=t+1
  print(str,t)
  ift<10then
  recursion("times:",t)
  end
  ift==1then
  print("outerround")
  end
  end


  在遞歸算法時傳到1個自動編號自變量,做到閥值時終止遞歸算法,實行外層時不用傳參,初始值為0,且可以根據t的值分辨現階段的遞歸算法疊加層數,還可以在遞歸算法結束后,在外層執行完之前做過別的事,一箭雙雕。


  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128850.html

相關文章

  • 用 PHP 的方式實現的各類算法合集

    摘要:數據項是數據的不可分割的最小單位。數據項是對客觀事物某一方面特性的數據描述。數據對象是性質相同的數據元素的集合,是數據的一個子集。數據的邏輯結構數據元素之間的相互關系稱為邏輯結構。 項目地址 https://github.com/m9rco/algo... 每周最少一更,求出題,求虐待 At least once a week, ask for problems and abuse 簡...

    Karrdy 評論0 收藏0
  • 用 PHP 的方式實現的各類算法合集

    摘要:數據項是數據的不可分割的最小單位。數據項是對客觀事物某一方面特性的數據描述。數據對象是性質相同的數據元素的集合,是數據的一個子集。數據的邏輯結構數據元素之間的相互關系稱為邏輯結構。 項目地址 https://github.com/m9rco/algo... 每周最少一更,求出題,求虐待 At least once a week, ask for problems and abuse 簡...

    pakolagij 評論0 收藏0
  • 用 PHP 的方式實現的各類算法合集

    摘要:數據項是數據的不可分割的最小單位。數據項是對客觀事物某一方面特性的數據描述。數據對象是性質相同的數據元素的集合,是數據的一個子集。數據的邏輯結構數據元素之間的相互關系稱為邏輯結構。 項目地址 https://github.com/m9rco/algo... 每周最少一更,求出題,求虐待 At least once a week, ask for problems and abuse 簡...

    leonardofed 評論0 收藏0
  • 首次超越LSTM : Facebook 門卷積網絡新模型能否取代遞歸模型?

    摘要:得到的結果如下上圖是門卷積神經網絡模型與和模型在數據集基準上進行測試的結果。雖然在這一研究中卷積神經網絡在性能上表現出了對遞歸神經網絡,尤其是的全面超越,但是,現在談取代還為時尚早。 語言模型對于語音識別系統來說,是一個關鍵的組成部分,在機器翻譯中也是如此。近年來,神經網絡模型被認為在性能上要優于經典的 n-gram 語言模型。經典的語言模型會面臨數據稀疏的難題,使得模型很難表征大型的文本,...

    高勝山 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<