python programação básica: exemplos em Python são baseadas na coluna e Torre de Hanói algoritmo recursivo implementou o Fibonacci

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.

  1. 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: Aqui Insert Picture Descrição
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.

  1. Torre de Hanói

A figura é uma versão simplificada do jogo Torre de Hanoi, apenas quatro placas: Aqui Insert Picture Descrição
Torre de jogo Hanoi como Aqui Insert Picture Descrição
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

Publicado 25 artigos originais · ganhou elogios 7 · vê 30000 +

Acho que você gosta

Origin blog.csdn.net/haoxun11/article/details/104954353
Recomendado
Clasificación