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

不言
Libérer: 2018-04-27 15:21:24
original
3152 Les gens l'ont consulté

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
Copier après la connexion


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
Copier après la connexion


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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal