기본적인 프로그래밍 파이썬은 : 파이썬 예는 피보나치 하노이 재귀 알고리즘의 열과 타워에서 구현을 기반으로

이 논문은 하노이 재귀 알고리즘을 구현 피보나치 시리즈 파이썬의 예를 설명합니다. 다음과 같이 참조 용으로 공유 :

여기에서 우리는 파이썬에서 재귀를 사용하는 학습 두 가지 예를 전달합니다.

  1. 피보나치 시퀀스를 식별 첨자 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)에 있고, 재귀 구현 과정에서 보면 : 그림 삽입 설명 여기
같은 프로그램, 프로그램은 재귀를 사용하지만 순환주기, 시스템 자원의 효율성보다 간단하지만 소비 비율주기. 재귀 호출이 리턴 종료 후 층층이 층으로 층을 입력하기 때문에, 순환 효율이 높지 않다. 왜 재귀를 사용해야합니까? 몇 가지 문제가 있기 때문에, 우리는 아주 명확주기 프로그램을 찾을 수 있지만, 쉽게 명백한 재귀 프로그램을 찾을 수 있습니다. 예를 들어, 하노이 문제의 유명한 타워.

  1. 하노이의 탑

그림은 하노이 타워 게임의 단순화 된 버전입니다 만 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

마지막으로, 나는 좋은 평판 파이썬 모임을 추천 [ 입력합니다 고참, 기술을 학습 경험, 면접 스킬, 직장 경험과 다른 공유 학습이 많이있다,], 더 많은 우리는주의 깊게 실제 프로젝트 데이터에 제로 소개 정보를 준비 방법, 매일, 프로그래머는 학습과 작은 세부 사항에 관심을 지불 할 필요의 일부를 공유하고, 타이밍 파이썬 기술을 설명

게시 25 개 원래 기사 · 원 찬양 7 ·은 30000 +를 볼

추천

출처blog.csdn.net/haoxun11/article/details/104954353