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

 C Discussion :

nombres de catalan en iteratif


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2009
    Messages : 1
    Par défaut nombres de catalan en iteratif
    Bonjour,
    il y a un exercice que je n'arrive pas a faire en entier, s'il y a quelqu'un qui peut m'aider, merci.

    Écrire un programme C qui calcule la suite des nombres de Catalan définie ainsi:
    C(1)=1 et C(n)=somme(i=1 jusqu'a n-1) C(i)C(n-i) avec n>1
    Les cinq premiers termes de la suite sont donc: 1, 1, 2, 5 et 14. Votre programme devra calculer cette suite de 2 façons différentes, chaque façon correspondant à une fonction distincte:

    a)en utilisant une fonction récursive selon la définition ci-dessus

    b)en utilisant une fonction qui calcule avec deux boucles "for" la formule suivante (équivalente à la formule récursive):
    C(n)=(1/n)*(n-1 parmi 2n-2)
    où (n-1 parmi 2n-2)=(2n-2)!/(n-1)!(n-1)!
    pour la fonction récursive (question a),
    je l'ai faite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    int function c(int n); 
    { int resultat; 
     
    if (n==1) resultat=1 
    else 
    { 
    resultat=0; 
    for (int i=1;i<n-1;i++) 
    resultat=resultat+c(i)c(n-1); 
     
    } 
     
    return resultat; 
     
    }
    mais pour la question b, je n'y arrive pas, s'il y a quelqu'un qui peut m'aider.
    merci.

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Ton code ne compile pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    int function c(int n); // int c(int n) //sans ;
    { int resultat; 
     
    if (n==1) resultat=1 // manque ;
    else 
    { 
    resultat=0; 
    for (int i=1;i<n-1;i++)    // int i=0 valable uniquement en C99
    resultat=resultat+c(i)c(n-1); 
     
    } 
     
    return resultat; 
     
    }
    Ces erreurs corrigées, ça ne marche pas :
    c(1) ==1
    c(2) = 0!!
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //C(1)=1 et C(n)=somme(i=1 jusqu'a n-1) C(i)C(n-i) avec n>1
    for (int i=1;i<n-1;i++)    // borne fausse i<= n-1
    resultat=resultat+c(i)c(n-1); // expression fausse c(i)c(n-i)

  3. #3
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 143
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat=resultat+c(i)c(n-1);
    Pour cette ligne, essaye d'utiliser les opérateurs que tu connais.
    Les compilateurs sont pas plus intelligents que toi, il ne vont pas forcément
    savoir de quoi tu parles.

    Ex. 1.10^6 ne sera pas compris pas ton compilateur.

    Sérieusement, ne laisse rien au hazard, essaye de faire clair :p

Discussions similaires

  1. Nombre de Catalan
    Par pazze dans le forum Débuter
    Réponses: 26
    Dernier message: 01/11/2008, 14h58
  2. nombre de catalans
    Par kassimsajid dans le forum C
    Réponses: 2
    Dernier message: 20/03/2007, 10h44
  3. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31
  4. Nombre de fichiers ouverts simultanément
    Par matrixfan dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/05/2002, 17h47
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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