遞歸演算法python
1. 輸入n 計算n的階乘,要用遞歸演算法,python,謝謝大神!
deffact(n):
ifn==0:
return1
else:
returnn*fact(n-1)
n=int(input())
print(fact(n))
2. python函數遞歸的實現
只要獲得所有點即可,x1為x軸起點,x2為x軸終點,gao為縱軸長版度,i為切權分次數.
x1=0
x2=10
gao=8
f(0,gao,x1,x2)
f(i=0,gao,x1,x2){
if(i==3){
return
}
t=(double)(x1+x2)
t=t/2
print(t,gao/2);
f(i+1,gao/2,x1,t);
f(i+1,gao/2,t,x2);
}
3. 請問python中類裡面的方法可以遞歸嗎如果可以遞歸的話怎麼用
>>> class recursion:
... def method(self,n):
... if n==1:return 1
... return n*self.method(n-1)
...
>>> a=recursion()
>>> a.method(5)
120
就像普通遞歸一樣調版用權
4. 利用Python遞歸實現5!,即1*2*3*4*5
按照題目要求編寫的Python的階乘遞歸程序如下
def jiecheng(n):
if n==1:
return 1
else:
return n*jiecheng(n-1)
print(jiecheng(5))
源代碼回(注意源代碼的答縮進)
5. python 遞歸實現組合
步驟要從list[start:end+1]中得到最小的數字放入list[start],然後再遞歸按題意,如果整個數列都排序排,第二個參數end完全多餘,除非只排部分才需要
6. python遞歸演算法如何結束
想想子目錄遍歷,一層一層進去,結束了就出來了
7. Python 哪些可以代替遞歸的演算法
遞歸方法有些時候是不太好理解,不過遞歸的意義就是把解決問題n變成解決n-1的問題,最終變成解決1個問題。 假設有n個盤子,從上到下依次編號,最下面的盤子編號是大寫的N。
8. Python基於遞歸演算法實現的走迷宮問題
Python基於遞歸演算法實現的走迷宮問題
本文實例講述了Python基於遞歸演算法實現的走迷宮問題。分享給大家供大家參考,具體如下:
什麼是遞歸?
簡單地理解就是函數調用自身的過程就稱之為遞歸。
什麼時候用到遞歸?
如果一個問題可以表示為更小規模的迭代運算,就可以使用遞歸演算法。
迷宮問題:一個由0或1構成的二維數組中,假設1是可以移動到的點,0是不能移動到的點,如何從數組中間一個值為1的點出發,每一隻能朝上下左右四個方向移動一個單位,當移動到二維數組的邊緣,即可得到問題的解,類似的問題都可以稱為迷宮問題。
在python中可以使用list嵌套表示二維數組。假設一個6*6的迷宮,問題時從該數組坐標[3][3]出發,判斷能不能成功的走出迷宮。
maze=[[1,0,0,1,0,1],
[1,1,1,0,1,0],
[0,0,1,0,1,0],
[0,1,1,1,0,0],
[0,0,0,1,0,0],
[1,0,0,0,0,0]]
針對這個迷宮問題,我們可以使用遞歸的思想很好的解決。對於數組中的一個點,該點的四個方向可以通過橫縱坐標的加減輕松的表示,每當移動的一個可移動的點時候,整個問題又變為和初始狀態一樣的問題,繼續搜索四個方向找可以移動的點,知道移動到數組的邊緣。
所以我們可以這樣編碼:
# 判斷坐標的有效性,如果超出數組邊界或是不滿足值為1的條件,說明該點無效返回False,否則返回True。
def valid(maze,x,y):
if (x>=0 and x<len(maze) and y>=0 and y<len(maze[0]) and maze[x][y]==1):
return True
else:
return False
# 移步函數實現
def walk(maze,x,y):
# 如果位置是迷宮的出口,說明成功走出迷宮
if(x==0 and y==0):
print("successful!")
return True
# 遞歸主體實現
if valid(maze,x,y):
# print(x,y)
maze[x][y]=2 # 做標記,防止折回
# 針對四個方向依次試探,如果失敗,撤銷一步
if not walk(maze,x-1,y):
maze[x][y]=1
elif not walk(maze,x,y-1):
maze[x][y]=1
elif not walk(maze,x+1,y):
maze[x][y]=1
elif not walk(maze,x,y+1):
maze[x][y]=1
else:
return False # 無路可走說明,沒有解
return True
walk(maze,3,3)
遞歸是個好東西呀!
9. python 遞歸演算法算最大公約數
設計的邏輯就有問題,find就該做find的事,不要在find里有輸出
#yourcodegoeshere
defGCD():
b=input("pleaseenterthefirstnumber")
c=input("pleaseenterthesecondnumber")
printfind(b,c)
deffind(b,c):
ifb>c:
d=b%c
b=c
ifd==0:
returnb
c=d
find(b,c)
else:
e=c%b
c=b
ife==0:
returnc
b=e
find(b,c)
#printfind(b,c)
defsimp_find(b,c):
ifb%c!=0:
returnsimp_find(c,b%c)
returnc
GCD()
10. 如何使用Python的遞歸方法來實現組合數
defC(n,m):
ifm>n:
return0
elifm==1:
returnn
elifn==1:
return1
else:
returnC(n-1,m-1)+C(n-1,m)
print(C(5,1))#5
print(C(5,2))#10
print(C(5,3))#10
print(C(5,4))#5
print(C(5,5))#1