Este artigo descreve exemplos de Hanoi e da série de Fibonacci Python algoritmo recursivo implementado. Compartilhar com você para sua referência, como segue:
Aqui passamos dois exemplos, aprendendo a usar recursão em python.
- Identificar a sequência de Fibonacci, o subscrito n é um número (índice de 0)
Forma de Fibonacci sequência é a seguinte: 0,1,1,2,3,5,8,13 ......
① while, código python2 é como se segue:
def fib(n):
a,b=0,1
count=0
while count<n:
a,b=b,a+b
count=count+1
print a
Os resultados são os seguintes:
>>> fib(0)
0
>>> fib(1)
1
>>> fib(2)
1
>>> fib(3)
2
>>> fib(4)
3
>>> fib(5)
5
② recursiva (condições de contorno deve ser recursiva), código python2 é a seguinte:
def fib(n):
if n==0 or n==1:#递归的边界条件
return n
else:
return fib(n-1)+fib(n-2)
Os resultados são os seguintes:
>>> fib(0)
0
>>> fib(1)
1
>>> fib(2)
1
>>> fib(3)
2
>>> fib(4)
3
>>> fib(5)
5
algoritmo recursivo é um dos o melhor desempenho do pensamento computacional, temos que f (4) como um exemplo, olhar para o processo de implementação recursiva:
o mesmo programa, embora o programa é simples de usar recursão, mas menor do que a eficiência do ciclo, os recursos do sistema recursivo ciclo de taxa de consumo. Uma vez que a chamada recursiva é introduzido, camada por camada, camada por camada, após o fim do retorno, a eficiência recursiva não é alta. Por que você tem que usar recursão? Porque existem alguns problemas, não podemos encontrar o programa ciclo muito clara, mas fácil de encontrar o programa recursivo óbvio. Por exemplo, a famosa Torre de problema Hanoi.
- Torre de Hanói
A figura é uma versão simplificada do jogo Torre de Hanoi, apenas quatro placas:
Torre de jogo Hanoi como
código python2 é como se segue:
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)
O resultado:
>>> 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
Finalmente, eu recomendo uma reunião boa reputação python [ clique para entrar ], há um monte de veteranos habilidades de aprendizagem, experiência, habilidades de entrevista, experiência de trabalho e outros share de aprendizagem, quanto mais cuidadosamente preparado a informação introdutória base zero em dados reais do projeto método, todos os dias, os programadores explicar a tecnologia Python tempo, para compartilhar um pouco da aprendizagem e a necessidade de prestar atenção aos pequenos detalhes