un soucis sur la récursivité
Bonjour à tous !!
Je me permets de passer vous voir car je fais face à un un problème technique qui touche à la récursivité.
Je tente de développer une fonction dont l'objectif serait de parcourir un graphe, en partant d'un point initial et récupérant tous les chemins possible à effectuer avec une distance maximum. Je pars donc de A, sans point d'arrivée précis, mais je n'ai le droit de parcourir que 300 par exemple, et je récupère dans l'idéal la liste des chemins possibles à faire depuis A.
Pour cela je dispose d'un dictionnaire contenant tous les noeuds. Chaque noeud a pour clef sont identifiant et comme valeur un autre dictionnaire contenant les noeuds auxquels il est connecté et la valeur à parcourir pour les rejoindre
EX :
2654 :{2655:170, 2987:22, 3500:98}
Le noeud 2654 est relié aux noeuds 2655,2987,3500 et dois parcourir respectivement 170,22,98 pour les atteindre.
j'étais parti sur un test de ce genre :
Code:
1 2 3 4 5 6 7 8 9 10
| def parcours(dico,debut,dist,way,maxi,all_way):
for key,value in begining.items():
if key not in way :
way.append(key)
dist+=value
if dist<maxi :
parcours(dico,dico[key],dist,way,maxi,all_way)
else :
all_way.append(way)
print(dist) |
Bon j'obtiens des truc bizarres, notamment le print qui me retourne des valeurs beaucoup plus élevées que le maximum prévu initialement :?
Si quelqu'un a une bonne idée je suis preneur, au besoin je pourrai vous joindre le fameux dictionnaire si vous voulez faire des tests avec.
Merci d'avance à tout le monde :lol:
PS: si jamais le post arrive au mauvais endroit, mes excuses, faites moi signe et je le déplace