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

Calcul scientifique Python Discussion :

Recursivité n premiers carrés


Sujet :

Calcul scientifique Python

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 36
    Points : 25
    Points
    25
    Par défaut Recursivité n premiers carrés
    Bonjour je voudrais calculer les n premier carrée en utilisant la recursivité sauf que ca ne me calcule qu'un nombre dans mon test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    def premiersCarresRec(n) :
            res = []
            if n>0:
                    premiersCarresRec(n-1)
                    res.append(n*n)
     
            return res
     
    test 3/4 : ECHEC
        entree  : 2
        calcule : [4]
        attendu : [0, 1]
    Donc si vous pouviez m'aidez.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Relisez votre code: lorsque premiersCarresRec(n-1) est appelé, la liste qu'il remplira n'étant pas celle de l'appelant, il fera un append de (n*n) à une liste qui disparaît à la sortie de la fonction (c'est une variable locale).
    Il faut construire la liste de façon "récursive" et retourner quelque chose comme [ n*n ] + premiersCarresRec(n-1).


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    Du coup j'ai fait ca sauf que je ne sais pas comment faire pour avoir les element du plus petit au plus grand parceque la j'ai le contraire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    def premiersCarresRec(n) :
            res = [] 
            if n>0:
                    res=[(n-1)*(n-1)]+premiersCarresRec(n-1)
     
            return res
     
     
    test 3/4 : ECHEC
        entree  : 2
        calcule : [1, 0]
        attendu : [0, 1]

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par delisiouz Voir le message
    Du coup j'ai fait ca sauf que je ne sais pas comment faire pour avoir les element du plus petit au plus grand parce que la j'ai le contraire
    Ici, le "+" est une opération de concaténation. '123' + '456' fabrique '123456'... si on veut '456123', il faut échanger les termes.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Dessiner votre premier triangle et carré en WebGL
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 02/05/2013, 08h56
  2. Iteration VS recursivité
    Par yacinechaouche dans le forum C
    Réponses: 40
    Dernier message: 16/11/2012, 11h52
  3. Nombre premiers et calculer la racine carrée d'un nombre
    Par Roud9 dans le forum Débuter avec Java
    Réponses: 19
    Dernier message: 21/09/2010, 17h55
  4. Tracer un carré de X cm
    Par mdel dans le forum Composants VCL
    Réponses: 6
    Dernier message: 06/01/2003, 16h17
  5. Racine carrée
    Par SteelBox dans le forum Mathématiques
    Réponses: 5
    Dernier message: 23/11/2002, 17h15

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