Réaliser la liste chemins possibles
Bonjour à tous
Je ne parviens pas à réaliser une fonction en Python me donnant une liste des chemins possibles pour un arbre donné. Plus précisément, voici la forme de mon problème.
On considère qu'à chaque tour, on peut obtenir un nombre entier entre 1 et 6. Les résultats successifs obtenus au cours du jeu sont stockés dans la variable globale JEU. En fonction des résultats obtenus précédemment, il se peut que certaines valeurs ne soient pas accessibles lorsqu'on joue. À chaque tour, on peut utiliser la fonction COUPS POSSIBLES qui prend en entrée la variable JEU et renvoie les nombres que l'on peut obtenir à ce tour.
J'aimerais créer une fonction qui prendrait en entrée JEU et un entier naturel N non nul et renverrait une liste contenant toutes les listes possibles de N coups.
Dans le cas particulier de N=3, il me semble que l'on pourrait faire ainsi.
Merci d'avance de votre aide.
Je ne parviens pas à réaliser une fonction en Python me donnant une liste des chemins possibles pour un arbre donné. Plus précisément, voici la forme de mon problème.
On considère qu'à chaque tour, on peut obtenir un nombre entier entre 1 et 6. Les résultats successifs obtenus au cours du jeu sont stockés dans la variable globale JEU. En fonction des résultats obtenus précédemment, il se peut que certaines valeurs ne soient pas accessibles lorsqu'on joue. À chaque tour, on peut utiliser la fonction COUPS POSSIBLES qui prend en entrée la variable JEU et renvoie les nombres que l'on peut obtenir à ce tour.
J'aimerais créer une fonction qui prendrait en entrée JEU et un entier naturel N non nul et renverrait une liste contenant toutes les listes possibles de N coups.
Dans le cas particulier de N=3, il me semble que l'on pourrait faire ainsi.
def ListeCoupsPossibles(JEU): chemin=[] C=COUPSPOSSIBLES(JEU) L0=JEU.copy() for c0 in C: L1=L0+[c0] C=COUPSPOSSIBLES(L1) for c1 in C : L2=L1+[c1] C=COUPSPOSSIBLES(L2) for c2 in C : chemin=chemin+[[c0,c1,c2]] return cheminIci, j'ai imbriqué 3 boucles for mais je ne vois pas comment en imbriquer un nombre variable N, pourtant j'imagine qu'il s'agit d'un problème classique...
Merci d'avance de votre aide.
Réponses
-
Utilise un DFS (parcours en profondeur ou depth first search).Algebraic symbols are used when you do not know what you are talking about.
-- Schnoebelen, Philippe -
Deux mots clés pour chercher : "Parcours d'arbre non-binaire", "Fonction récursive".
En gros, ça va ressembler à ça :Fonction Parcours ( Position_a_analyser, profondeur ) si profondeur = 0 alors // traitement. sinon pour i = 1 a 6 nouvelle_Position = f( Position_a_analyser, i ) // On applique le mouvement i à la //Position actuelle, et ça donne une nouvelle position parcours ( nouvelle_position, profondeur -1 ) // Je suis dans la fonction Parcours, // et j'appelle la fonction Parcours d'où le terme "Fonction récursive" pour la recherche fin fin
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. Benjamin Franklin -
J'imaginais bien qu'il y avait une solution puisque le problème me semblait classique mais j'ignorais tout du vocabulaire me permettant de faire ces recherches. Merci beaucoup de votre aide, je vais me renseigner de ce pas !
-
Ça peut se faire sans récursivité, en impératif.Algebraic symbols are used when you do not know what you are talking about.
-- Schnoebelen, Philippe
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 163.2K Toutes les catégories
- 9 Collège/Lycée
- 21.9K Algèbre
- 37.1K Analyse
- 6.2K Arithmétique
- 53 Catégories et structures
- 1K Combinatoire et Graphes
- 11 Sciences des données
- 5K Concours et Examens
- 11 CultureMath
- 47 Enseignement à distance
- 2.9K Fondements et Logique
- 10.3K Géométrie
- 65 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 68 Informatique théorique
- 3.8K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 314 Mathématiques et Physique
- 4.9K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10K Probabilités, théorie de la mesure
- 773 Shtam
- 4.2K Statistiques
- 3.7K Topologie
- 1.4K Vie du Forum et de ses membres