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

Algorithmes et structures de données Discussion :

[Combinaison] Génération d'entrée


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 31
    Points : 29
    Points
    29
    Par défaut [resolu][Combinaison] Génération d'entrée
    Bonjour,

    Voilà mon problème. Je ne pense pas qu'il soit difficile, mais voilà, je dois avoir le cerveau embrouillé, j'arrive pas à avoir le déclic.

    Le but de l'algorithme est de généré des entrées "en calculant toutes les corrélations d'ordres supérieurs entre les entrées, jusqu'à un certain ordres."

    Si on se base par exemple sur un problème à deux entrées, et que l'on veut un ordre 4, cela nous donnerais:

    x1
    x2

    x1^2
    x1.x2
    x2^2

    x1^3
    x1^2.x2
    x1.x2^2
    x2^3

    x1^4
    x1^3.x2
    x1^2.x2^2
    x1.x2^3
    x2^4
    Avec deux entrées, c'est assez simple, le but c'est de génraliser sur le nombre d'entrée et sur l'ordre.

    Merci pour votre aide

    @++ Beleys

  2. #2
    Membre actif Avatar de ronan99999
    Inscrit en
    Juillet 2003
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 279
    Points : 299
    Points
    299
    Par défaut
    Si n est ton ordre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Pour i=0 à i=n faire
    x1^(i) * x2^(n- i)
    Si tu ne te plantes pas, comment veux tu pousser?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Merci mais non, la cela marche uniquement pour 2 entrées.
    Dans mon algorithme, j'ai 2 variables:
    n -> l'ordre
    i -> le nombre d'entrée et les deux peuvent varier

    Par exemple pour
    n=2
    i= 3

    x1
    x2
    x3

    x1^2
    x2^2
    x3^2
    x1^2.x2
    x1^2.x3
    x1.x2^2
    x1.x3^2
    x2^2.x3
    x3^2.x2
    Marc

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    La récursivité doit marcher impeccablement non ?
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    euh oui, c'est ce que l'on m'as dis ....
    Et c'est la que je bloque
    Cela fait plusieurs années que je n'y ai pas touché et c'est le drame, impossible d'avoir un prémice d'idée à mettre en place ....

    @++ Beleys

  6. #6
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Sans rentrer dans les détails un truc du genre :

    n = Nombre de variables (x1, x2...xn), m = degré maximum

    A(n, m) = [pour k = 0 à m] A(n-1, m -k) xn^k

    Pas si simple parce que A(n, m) ramène un tableau en non une chaîne, mais c'est l'idée.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Merci pour l'aide
    Je ramene la fonction quand elle marchera

    [Edit]
    Me voilà de retour, désolé j'ai été un peu long ....
    Comme quoi, cela s'oublie ces choses là ...

    Sinon, je sais que nous sommes dans la section algorithme, mais vu que mon code est assez lisible, je me permet de mettre directement le code C ...

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    /******************************************/
    /*        Generation de donnée            */
    /*        Auteur : Marc Sauget            */
    /*        Date   : 02/05/2005             */        
    /*                                        */
    /******************************************/
     
     
    #include <iostream>
    #include <string>
     
    using namespace std;
     
    void A(int n, int m, string res){
      string resT;
      char * t;
      t = (char *)malloc(2);
      if (n>0){
        for (int i=m; i>=0;i--){
          resT = res;
          if (i>0){
    	if (resT !=""){
    	  resT += " * ";
    	}
    	sprintf(t,"%i",n);
    	resT += "x_";
    	resT += t;
    	resT +="^";
    	sprintf(t,"%i",i);
    	resT += t;
          }
          A(n-1,m,resT);
        }
      }
      else{
        cout <<res<<endl;;
      }
    }
     
    int main()
    {
      int n; // Nombre de paramtre d'entre
      int m; // Ordre voulu
      string res="";
      do{
        cout <<"Nombre d'entre : ";
        cin >> n;
      }
      while (n < 0);
     do{
        cout <<"Ordre voulu : ";
        cin >> m;
      }
      while (m < -1);
      for (int i=1; i<=n; i++){
        cout <<"x_"<<i<<"^"<<m<<endl;
      }
      A(n,m-1,res);
      cout <<endl;
      return 0;
    }

    .... Ben en fait non c'est pas résolu, ce programme genere un ordre 4 quand on veut un ordre 3 par exemple. .....

    [/edit]
    @++ Beleys[/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Math / Random] Génération nombre aléatoire compris entre deux bornes
    Par oligig dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 30/06/2013, 17h23
  2. Réponses: 1
    Dernier message: 20/08/2012, 10h13
  3. Génération d'une liste de combinaison
    Par Paniez dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 01/07/2008, 09h52
  4. génération des combinaisons possibles
    Par smh_master dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 04/05/2008, 10h14

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