IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Question sur la r�cursivit�


Sujet :

Python

  1. #1
    Membre � l'essai
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Par d�faut Question sur la r�cursivit�
    Bonjour � tous,

    Une fonction appelant une autre qui, � son tour, appelle la premi�re fonction, est-elle r�cursive?

    exemple :

    fct 1(...):
    fct2(...)

    fct2(...):
    fct1(...)

    Bien entendu, la seconde fonction n'appelle pas seulement la premi�re, mais appeler la premi�re fonction est une des possibilit� (apr�s avoir v�rifi� des conditions)
    La fonction 1 est-elle une fonction r�cursive?

  2. #2
    Membre �clair�
    Homme Profil pro
    D�veloppeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur en formation
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par d�faut
    J'ai test� et voil� ce que j'ai obtenu :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def fonction1() : fonction2()
     
    >>> def fonction2() : fonction1()
     
    >>> fonction1()
    Traceback (most recent call last):
      File "<pyshell#4>", line 1, in <module>
        fonction1()
      File "<pyshell#1>", line 1, in fonction1
        def fonction1() : fonction2()
    ###########etcetera,des centaines de fois#########
    RuntimeError: maximum recursion depth exceeded
    Donc la fonction est r�cursive ^^. Sinon, quel est l'int�ret d'un tel sujet ?

  3. #3
    Membre � l'essai
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Par d�faut
    J'ai un projet � r�aliser et je ne peux pas utiliser la r�cursivit�. Merci pour ta r�ponse

  4. #4
    Expert confirm�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par d�faut
    Citation Envoy� par stalacta Voir le message
    J'ai test� et voil� ce que j'ai obtenu :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def fonction1() : fonction2()
     
    >>> def fonction2() : fonction1()
     
    >>> fonction1()
    Traceback (most recent call last):
      File "<pyshell#4>", line 1, in <module>
        fonction1()
      File "<pyshell#1>", line 1, in fonction1
        def fonction1() : fonction2()
    ###########etcetera,des centaines de fois#########
    RuntimeError: maximum recursion depth exceeded
    Donc la fonction est r�cursive ^^. Sinon, quel est l'int�ret d'un tel sujet ?
    Pas d'accord.

    Une fonction est r�cursive si elle s'appelle elle-m�me. Pas si elle appelle une autre fonction, quant bien m�me est-ce celle la qui l'a appel�e.

    @ Kopp92i, un exemple ?

  5. #5
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 776
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : Architecte technique retrait�
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 776
    Par d�faut
    Citation Envoy� par VinsS Voir le message
    Une fonction est r�cursive si elle s'appelle elle-m�me. Pas si elle appelle une autre fonction, quand bien m�me est-ce celle la qui l'a appel�e.
    Heu, quand il y a des cycles on dit aussi que c'est r�cursif.
    Mais �a d�pend de la d�finition retenue.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Expert confirm�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par d�faut
    Bien sur, r�cursif est un terme de la langue mais j'ai pens� � une restriction didactique.

    Donc: Pas de fonction r�cursive.

  7. #7
    Membre � l'essai
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Par d�faut
    Un croquis de ce que j'ai:

    f1()
    if ...:
    ....
    if ...:
    f(3)
    if ....
    f(4)
    return

    f2()
    if ...:
    ....
    if ...:
    f(3)
    if ....
    f(4)
    return

    f3()
    if ...:
    ....
    if ...:
    f(1)
    if ....
    f(2)
    return

    f4()
    if ...:
    ....
    if ...:
    f(1)
    if ....
    f(2)
    return

    La fonction ne s'appelle pas directement, mais peut-�tre appel�e bien apr�s (par ex : f(1) appelle f(3)->f(2)->f(4)->f(1) et puis quand on en a fini avec la derni�re �tape on revient � la pr�c�dente ).
    C'est assez complexe... Je pensais que ce n'�tait pas r�cursive, mais lorsqu'il y a beaucoup d'appel de fonction, j'ai un message d'erreur : RuntimeError maximum recursion depth exceeded in comparison
    Cette erreur prouve peut-�tre qu'en fait, il y a de la r�cursivit�.

  8. #8
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 776
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : Architecte technique retrait�
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 776
    Par d�faut
    Citation Envoy� par Kopp92i Voir le message
    Je pensais que ce n'�tait pas r�cursive, mais lorsqu'il y a beaucoup d'appel de fonction, j'ai un message d'erreur : RuntimeError maximum recursion depth exceeded in comparison
    Cette erreur prouve peut-�tre qu'en fait, il y a de la r�cursivit�.
    Hu?!?
    Ca veut juste dire que la pile d�borde.
    Si votre algorithme n'est pas r�cursif il n'y a pas de raisons pour qu'il y ait des appels de fonctions r�cursifs.
    Peut-�tre faut il vous inqui�ter sur ce que ca doit faire, comment vous l'avez code,...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre � l'essai
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Par d�faut
    En cours, nous n'avons pas encore vu la r�cursivit�, donc je ne sais pas grand chose sur ce sujet, le croquis que j'ai �cris dans mon post pr�c�dent repr�sente quatre fonctions, qui ne s'appellent jamais directement.

    J'ai essay� d'augmenter la capacit� de la pile, mais python se crash � ce moment l�.

    EDIT : J'ai r�ussi � avoir ce que je voulais, il fallait juste rajouter quelques conditions par-ci, par-l�. Je ne suis juste pas encore s�r si c'est r�cursif ou pas, vu que les avis divergent l�-dessus.

Discussions similaires

  1. [debutant] Questions sur 1 futur projet
    Par cyrull22 dans le forum XML/XSL et SOAP
    R�ponses: 3
    Dernier message: 28/04/2003, 21h49
  2. Quelques questions sur le TWebBrowser...
    Par CorO dans le forum Web & r�seau
    R�ponses: 3
    Dernier message: 17/01/2003, 21h23
  3. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    R�ponses: 7
    Dernier message: 29/10/2002, 08h45
  4. R�ponses: 2
    Dernier message: 11/08/2002, 21h27
  5. question sur les message box !
    Par krown dans le forum Langage
    R�ponses: 7
    Dernier message: 02/08/2002, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo