當前位置:編程學習大全網 - 網站源碼 - python遞歸問題

python遞歸問題

遞歸的思想主要是能夠重復某些動作,比如簡單的階乘,次方,回溯中的八皇後,數獨,還有漢諾塔,分形。由於堆棧的機制,壹般的遞歸可以保留某些變量在歷史狀態中,比如妳提到的return x * power..., 但是某些或許龐大的問題或者是深度過大的問題就需要盡量避免遞歸,因為可能會棧溢出。還有壹個問題是~python不支持尾遞歸優化!!!!所以~還是盡量避免遞歸的出現。 def power(x, n) if n < 0: return 1 return x * power(x, n - 1) power(3, 3) 3 * power(3, 2) 3 * (3 * power(3, 1)) 3 * (3 * (3 * power(3, 0))) 3 * (3 * (3 * 1)) 這裏n = 0, return 1 3 * (3 * 3) 3 * 9 27 當函數形參n=0的時候,開始回退~直到第壹次調用power結束。

  • 上一篇:fla中的源代碼
  • 下一篇:幫助jquery easyui如何清除combobox緩存?
  • copyright 2024編程學習大全網