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 :

amélioration de code


Sujet :

C++

  1. #1
    Membre régulier
    Homme Profil pro
    chercheur
    Inscrit en
    Février 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : chercheur
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2011
    Messages : 78
    Points : 109
    Points
    109
    Par défaut amélioration de code
    Bonjour,

    Je sollicite votre aide pour améliorer mon code. Je vous explique.
    J'ai génère une liste de périodes aléatoirement dans des groupes (classes) et je souhaiterai que toutes les classes soient couvertes par toutes les périodes. Supposant que j'ai 10 périodes et deux classes je dois avoir un résultat comme ceci (par exemple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    classe 0 nbperiode 7 : 2 3 4 5 6 7 9 
    classe 1 nbperiode 5 : 0 1 4 6 8
    Remarque : on peut trouver deux périodes qui se répètent dans deux classes différentes mais pas dans la même classe.

    Voici le code que j'ai fait mais le résultat trouvé n'est pas tout à fait correct.

    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
    for(int i=0 ; i<NombreClasses ; i++){ // nombre de classes
    		y=0;
    		for(int j=0 ; j<dm ; j++){ // nombre de periodes
    			rando = unifRand();
    			if (rando<0.5)
    				{
    					Mat_ClasseP[i][y]=j;
    					y++;
    					if (Tab_NbrPer[i]==1000)
    						Tab_NbrPer[i]=1;
    					else
    						Tab_NbrPer[i]=Tab_NbrPer[i]+1;
    					}
    			}
    		// s'il n'y a aucune periode
    		if (y==0)
    			{
    				Mat_ClasseP[i][0] = val_rand(0,dm);
    				Tab_NbrPer[i]=1;
    				}
    		}
    Le résultat du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    classe 0 nbperiode 6 : 0 2 4 7 8 9 
    classe 1 nbperiode 4 : 1 2 4 7
    Vous remarquez très bien que les 10 périodes ne sont pas toutes couvertes.
    Merci pour vos réponses

  2. #2
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 475
    Points
    11 475
    Billets dans le blog
    11
    Par défaut
    Je ne comprends pas tout à fait ce que tu souhaites obtenir.
    Tu veux que, en prenant toutes tes classes, toutes les périodes soient couvertes ? (donc de 0 à 9 dans ton exemple.)
    Et qu'elles soient réparties aléatoirement dans tes classes, dont le nombre de périodes est fixé ?
    Et que se passe-t-il si la somme du nombre de périodes de tes classes ne permet pas de couvrir entièrement ta plage de périodes disponibles ?

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 170
    Points : 12 291
    Points
    12 291
    Par défaut
    Student_Master et ses "questions" toujours aussi fumeuse.

    Bin moi, je fais simple.
    Je mets toutes les périodes dans le group 0 et rien dans les autres.
    Je respecte toutes les conditions.

  4. #4
    Membre régulier
    Homme Profil pro
    chercheur
    Inscrit en
    Février 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : chercheur
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2011
    Messages : 78
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par dragonjoker59 Voir le message
    Je ne comprends pas tout à fait ce que tu souhaites obtenir.
    Tu veux que, en prenant toutes tes classes, toutes les périodes soient couvertes ? (donc de 0 à 9 dans ton exemple.)
    Et qu'elles soient réparties aléatoirement dans tes classes, dont le nombre de périodes est fixé ?
    Et que se passe-t-il si la somme du nombre de périodes de tes classes ne permet pas de couvrir entièrement ta plage de périodes disponibles ?
    Oui le nombre de périodes est fixé à 10.
    Si la somme de période de mes classes ne permet pas de couvrir entièrement la plage des périodes disponibles mon modèle mathématique ne marche pas. Donc, c'est une contrainte que le toutes les périodes soient couvertes.

  5. #5
    Membre régulier
    Homme Profil pro
    chercheur
    Inscrit en
    Février 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : chercheur
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2011
    Messages : 78
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Student_Master et ses "questions" toujours aussi fumeuse.

    Bin moi, je fais simple.
    Je mets toutes les périodes dans le group 0 et rien dans les autres.
    Je respecte toutes les conditions.
    T'as raison ! mais une petite précision que j'ai mis une condition dans le code que chaque classe contient au moins une période

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 170
    Points : 12 291
    Points
    12 291
    Par défaut
    Bin, ça revient exactement à ta dernière question fumeuse, et j'ai toujours la même réponse :
    mettre dans le groupe 0 les périodes de 0 à ("nbpériode" - "nbgroupe").
    mettre dans les "nbgroupe-1" groupes restant mettre la période "nbpériode"-("nbgroupe"-"indice du groupe").

    C'est toujours le même problème ?
    Vous n'écoutez toujours pas les réponses.

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

Discussions similaires

  1. Amélioration de code
    Par Devilju69 dans le forum Langage
    Réponses: 3
    Dernier message: 07/10/2008, 15h01
  2. Optimisations et Améliorations de code
    Par womannosky dans le forum Langage
    Réponses: 19
    Dernier message: 02/07/2008, 15h05
  3. [Optimisation]Peut-on améliorer ce code ?
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 09/08/2007, 15h43
  4. [Tableaux] Amélioration de code (if)
    Par Sir Tengu dans le forum Langage
    Réponses: 3
    Dernier message: 24/12/2006, 00h26
  5. [Sécurité] Comment amélioré mon code ?
    Par Nadd dans le forum Langage
    Réponses: 14
    Dernier message: 03/03/2006, 20h13

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