Maison  >  Article  >  développement back-end  >  Méthode Python pour résoudre le problème des étapes d'ordre N

Méthode Python pour résoudre le problème des étapes d'ordre N

不言
不言original
2018-04-27 15:21:243142parcourir

Cet article présente principalement la méthode Python pour résoudre le problème des étapes d'ordre N, décrit brièvement le problème des étapes et analyse les compétences opérationnelles associées de Python en utilisant des algorithmes récursifs et récursifs pour résoudre le problème des étapes sous forme d'exemples dont il a besoin. Les amis peuvent se référer à

Cet article décrit comment Python résout le problème des étapes d'ordre N. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :

Question : Il y a N marches dans un bâtiment. Le lapin peut sauter de 1, 2 ou 3 marches à chaque fois. là au total ?

Analyse d'Afanty :

Lorsque vous rencontrez ce genre de problème de recherche de modèles, poussez et poussez-vous. Combien y a-t-il de mouvements au niveau 1 ? Combien y a-t-il de mouvements au niveau 2 ? Combien y a-t-il de mouvements au niveau 3 ? Combien y a-t-il de mouvements au niveau 4 ? Combien y a-t-il de mouvements au niveau 5 ?

C'est vrai, les règles sont sorties !

Points d'erreur : Ce n'est pas un problème de combinaison, car passer l'étape 1 pour la première fois et l'étape 2 pour la deuxième fois est différent de passer l'étape 2 pour la première fois et l'étape 1 pour la deuxième fois

Ce qui suit est le code d'implémentation récursif de Python :


def allMethods(stairs):
  '''''
  :param stairs:the numbers of stair
  :return:
  '''
  if isinstance(stairs,int) and stairs > 0:
    basic_num = {1:1,2:2,3:4}
    if stairs in basic_num.keys():
      return basic_num[stairs]
    else:
      return allMethods(stairs-1) + allMethods(stairs-2) + allMethods(stairs-3)
  else:
    print 'the num of stair is wrong'
    return False


De Bien sûr, des méthodes non récursives peuvent également être utilisées. Implémentation, voici le code basé sur la méthode de récursivité :


def allMethod(stairs):
  '''''递推实现
  :param stairs: the amount of stair
  :return:
  '''
  if isinstance(stairs,int) and stairs > 0:
    h1,h2,h3,n = 1,2,4,4
    basic_num = {1:1,2:2,3:4}
    if stairs in basic_num.keys():
      return basic_num[stairs]
    else:
      while n <= stairs:
        temp = h1
        h1 = h2
        h2 = h3
        h3 = temp + h1 + h2
      return h3
  else:
    print &#39;the num of stair is wrong&#39;
    return False


D'accord, ce qui précède est respectivement l'utilisation de la récursivité et de la récursivité. Le processus de réalisation de la loi.

Recommandations associées :

Explication détaillée du calcul des intégrales définies via la méthode de Monte Carlo en programmation Python

exécution par lots de sous-processus de commandes Linux dans python



Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn