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 :

nombre de combinaisons


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Par défaut nombre de combinaisons
    Bonjour,

    Je voulais stocker le résultat dans un tableau pour l'utiliser après donc ce tableau qui sera allouer dynamiquement mais le problème est combien on doit réserver des cases pour ce tableau car le résultat ne contient pas toutes les combinaisons sauf de taille 2 jusqu'à taille N?
    Si on N=4 alors le nombre de toutes les combinaisons sont :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int nombre;
    nombre=pow(2,N);


    Mais en réalité la taille de tableau est inférieur que 'nombre' alors pour la libération après de ce tableau est ce que je fais jusqu'à la taille 'nombre' ou bien jusqu'à le nombre des cases réellement remplies?

    Est ce que on peut déterminer par une formule ou autre ? :
    - les combinaisons de taille 2: ici on a 6 si N=4
    - les combinaisons de taille 3: ici on a 4 si N=4
    - les combinaisons de taille 4: ici on a 1 si N=4

    Quel l'équivalent de cette formule en C ?

    Merci.

  2. #2
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    C'est a toi de determiner le nombre de case que tu veux avoir.

    Je n'ai pas compris comment tu determine le nombre de case que tu veux, mais si tu as une formule pour connaitre cette taille, alors fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int nombreDeCase;
     
    /* Ton traitement pour savoir ton nombre de case */
     
    Tableau = malloc (sizeof(/* Type */ * nombreDeCase));
    Si je n'ai pas repondu a ta question, reformule la correctement s'il te plait.

  3. #3
    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
    Mais en réalité la taille de tableau est inférieur que 'nombre' alors pour la libération après de ce tableau est ce que je fais jusqu'à la taille 'nombre' ou bien jusqu'à le nombre des cases réellement remplies?
    Tu dois désallouer tout ce que tu as alloué : Si tu as alloué par p = malloc(....), tu désalloues par free(p);

    Est ce que on peut déterminer par une formule ou autre ? :
    - les combinaisons de taille 2: ici on a 6 si N=4
    - les combinaisons de taille 3: ici on a 4 si N=4
    - les combinaisons de taille 4: ici on a 1 si N=4
    Le nombre de combinaisons de taille p est N!/p!/(N-p)!

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Par défaut
    Le nombre de combinaisons de taille p est N!/p!/(N-p)!
    Oui.
    Quelle est l'équivalent de cette formule en C ?

    Il y a des fonctions prédéfinies en C pour cette formule?

  5. #5
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    Citation Envoyé par siempre Voir le message
    Il y a des fonctions prédéfinies en C pour cette formule?
    Non il faut que tu les crées toi-même ...

  6. #6
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Je ne sais plus comment on appel '!', mais elle n'est pas presente dans math.h.
    Cependant, refaire cette fonction est tres facile:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int FonctionMystere (int nombre)
    {
        int resultat = nombre;
        int i;
     
        for (i=2, i<nombre ; i++)
            resultat *= i;
     
        return resultat;
    }

    et ensuite, il ne reste plu qu'a l'appliquer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FonctionMystere (N) / FonctionMystere (p) / FonctionMystere (N-p);
    Ps : vous etes sur que la formule est bonne ?
    Il me semblait que c'etait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                       N!
    Combinaison = -----------
                  p!(N-p)!

  7. #7
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    C'est la factorielle
    Mais bon je trouve que l'utilisation de la factorielle est assez limitée en C parce qu'on dépasse vite la capacité d'une variable

Discussions similaires

  1. recherche de meilleure solution, nombre de combinaison gigantesque
    Par Zwiter dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 13/05/2009, 11h42
  2. nombre de combinaisons possible
    Par devaben dans le forum C++
    Réponses: 3
    Dernier message: 11/05/2009, 13h53
  3. Algo qui donne le nombre de combinaison pos
    Par mail.spam dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 21/03/2009, 00h13
  4. Algorithme qui affiche le nombre de combinaison possible
    Par hsoussou dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 07/01/2009, 15h32
  5. calcul du nombre de combinaison possible
    Par Gunner4902 dans le forum Langage
    Réponses: 10
    Dernier message: 07/07/2008, 17h55

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