Recursivite

Fermé
Shams243 Messages postés 24 Date d'inscription mercredi 25 mars 2020 Statut Membre Dernière intervention 11 mai 2020 - Modifié le 2 avril 2020 à 15:10
Shams243 Messages postés 24 Date d'inscription mercredi 25 mars 2020 Statut Membre Dernière intervention 11 mai 2020 - 2 avril 2020 à 20:43
Bonjour
Je viens au près de vous car j'ai du mal à concevoir des fonction récursive.

Si vous pouvez bien me proposé une fonction récursive pour ma fonction ci-dessous et aussi peut être m'explique le principe de la récursivité et aussi un conseil pour cela

Def pgd (n):
       a=1
       T=[ ]
        While a <= n :
                  If (n%a == 0):
                           T+=[a]
                            a+=1
                  else:
                            a+=1
        Return T [-1]



Le code je l'ai écrit direct au clavier comprenez les espace ne le prennez pas en compte

Cette fonction est sensé me donner le plus grand diviseur d'un nombre
Je pense que c'est évident que sa sois lui même ce diviseur ????
A voir également:

6 réponses

yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
Modifié le 2 avril 2020 à 15:36
bonjour, il est souvent préférable, pour découvrir comment appliquer la récursivité, de ne pas partir d'un programme, mais de réfléchir au problème.
as-tu déjà appliqué la récursivité à d'autres problèmes?
quel est l'énoncé exact de ton exercice?

réfléchis à plusieurs techniques que tu pourrais utiliser si tu devait chercher le plus grand diviseur d'un nombre, et que tu disposes d'une feuille et d'un crayon.
0
Shams243 Messages postés 24 Date d'inscription mercredi 25 mars 2020 Statut Membre Dernière intervention 11 mai 2020
2 avril 2020 à 15:37
L'énoncé est de donner un algorithme capable de donner le plus grand diviseur d'un nombre par la méthode décroissante (perso j'ai comprend ce qu'il veut dire par méthode décroissante )
J'ai fais un algorithme qui donne le plus grand diviseur et maintenant on nous demande d'en faire une fonction récursive
0
yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
2 avril 2020 à 15:51
as-tu déjà appliqué la récursivité à d'autres problèmes?

réfléchis à plusieurs techniques que tu pourrais utiliser si tu devais chercher le plus grand diviseur d'un nombre par la méthode décroissante, et que tu disposes d'une feuille et d'un crayon.
0
Shams243 Messages postés 24 Date d'inscription mercredi 25 mars 2020 Statut Membre Dernière intervention 11 mai 2020
2 avril 2020 à 15:52
J'arrive pas à comprendre quand on dit méthode décroissante pourrez vous m'expliquer
0
yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
2 avril 2020 à 15:55
aucune idée, es-tu certain d'avoir bien recopié l'énoncé?
0
Shams243 Messages postés 24 Date d'inscription mercredi 25 mars 2020 Statut Membre Dernière intervention 11 mai 2020
2 avril 2020 à 16:00
Oui oui

Mais j'essaye de trouver une autre façon de faire comme vous l'avez dit

Et je vous le transmet
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Shams243 Messages postés 24 Date d'inscription mercredi 25 mars 2020 Statut Membre Dernière intervention 11 mai 2020
2 avril 2020 à 16:16
Voici selon moi un code récursive
Votre avis svp??


Def pgd (n):
a=0
T=[ ]
return pgdAux (n, a+1, T)

Def pgdAux ( n, a, T):
If a == n:
Return a
If n%a ==0:
T+=[a]
Return pgdAux (n,a+1,T)
0
yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
2 avril 2020 à 17:03
ce n'est pas une bonne méthode pour chercher des diviseurs, pas plus que ton code de départ.
si tu penses qu'un nombre est son diviseur, inutile de faire un programme.
0
Shams243 Messages postés 24 Date d'inscription mercredi 25 mars 2020 Statut Membre Dernière intervention 11 mai 2020
2 avril 2020 à 20:43
C'est un devoir de la fac
0