이 논문은 하노이 재귀 알고리즘을 구현 피보나치 시리즈 파이썬의 예를 설명합니다. 다음과 같이 참조 용으로 공유 :
여기에서 우리는 파이썬에서 재귀를 사용하는 학습 두 가지 예를 전달합니다.
- 피보나치 시퀀스를 식별 첨자 n은 숫자 (0부터 인덱스)이며
0,1,1,2,3,5,8,13 ...... : 양식 피보나치 순서는 이것이다
다음 ① 루프하면서 python2 코드 :
def fib(n):
a,b=0,1
count=0
while count<n:
a,b=b,a+b
count=count+1
print a
결과는 다음과 같습니다 :
>>> fib(0)
0
>>> fib(1)
1
>>> fib(2)
1
>>> fib(3)
2
>>> fib(4)
3
>>> fib(5)
5
② 재귀, python2 코드는 다음과됩니다 (경계 조건은 재귀해야합니다) :
def fib(n):
if n==0 or n==1:#递归的边界条件
return n
else:
return fib(n-1)+fib(n-2)
결과는 다음과 같습니다 :
>>> fib(0)
0
>>> fib(1)
1
>>> fib(2)
1
>>> fib(3)
2
>>> fib(4)
3
>>> fib(5)
5
재귀 알고리즘 전산 사고의 최상의 성능 중 하나입니다, 우리는 예를 들어 F (4)에 있고, 재귀 구현 과정에서 보면 :
같은 프로그램, 프로그램은 재귀를 사용하지만 순환주기, 시스템 자원의 효율성보다 간단하지만 소비 비율주기. 재귀 호출이 리턴 종료 후 층층이 층으로 층을 입력하기 때문에, 순환 효율이 높지 않다. 왜 재귀를 사용해야합니까? 몇 가지 문제가 있기 때문에, 우리는 아주 명확주기 프로그램을 찾을 수 있지만, 쉽게 명백한 재귀 프로그램을 찾을 수 있습니다. 예를 들어, 하노이 문제의 유명한 타워.
- 하노이의 탑
그림은 하노이 타워 게임의 단순화 된 버전입니다 만 4 판 :
하노이 게임의 타워로
다음과 같이 python2 코드입니다 :
def hanoi(a,b,c,n):
if n==1:#递归结束条件
print a,'->',c
else:
hanoi(a,c,b,n-1)
print a,'->',c
hanoi(b,a,c,n-1)
결과 :
>>> hanoi('A','B','C',1)
A -> C
>>> hanoi('A','B','C',2)
A -> B
A -> C
B -> C
>>> hanoi('A','B','C',3)
A -> C
A -> B
C -> B
A -> C
B -> A
B -> C
A -> C
마지막으로, 나는 좋은 평판 파이썬 모임을 추천 [ 입력합니다 고참, 기술을 학습 경험, 면접 스킬, 직장 경험과 다른 공유 학습이 많이있다,], 더 많은 우리는주의 깊게 실제 프로젝트 데이터에 제로 소개 정보를 준비 방법, 매일, 프로그래머는 학습과 작은 세부 사항에 관심을 지불 할 필요의 일부를 공유하고, 타이밍 파이썬 기술을 설명