-
Complement a 8
bonjour a tous
Dans le cadre d'un projet j'ai besoin d'un algo de complément a 8 je m'explique
je recupere une liste de client ayant chacun un certain nombre de dossiers associés (de 1 a 7 dossiers).
exemple le client 90000 possede 3 dossiers
le client 90001 possede 6 dossiers
ainsi de suite
je traite ces dossiers en les rengeants dans des emplacements contenant 8 places .Pour les traité je recupere une liste des clients triée par nombre de dossier donc du plus grand au plus petit
dans mon exemple donc le 90001 et ensuite le 90000
Je peux tres bien avoir dans un emplacement le 90000 de ranger il possede 3 dossier il reste donc 5 place (pour arriver aux 8 places par l'emplacement)
j'ai donc besoin d'un algo me permettant de faire le complément a 8 pour avoir des emplacement optimisé et rempli sachant que bien sur un client ne peut etre que dans un seul emplacement.
Par exemple si un client possede 7 dossier il prendra un emplacement et il faudra trouver un client avec 1 seul dossier pour completer voir le laisser tel quel s'il n'y a pas de client avec 1 dossier
si quelqu'un peut m'aider sa serait super merci
bye a biento
-
Bonjour,
t'aider ça on peut sans aucun doute, montre nous ton algo actuel on te dira ce qui ne va pas avec plaisir :)
-
ok ben en fait je pense faire de la sorte
je recupere donc la liste de mes clients trié dans l'ordre décroissant des nombres de dossiers
je pensais donc stocké tou mes clients et leurs nombre de dossiers dans un tableau avec en case 1 les client ayant un dossier en case 2 les clients ayant 2 dossier ainsi de suite
et ensuite je pars du plus grand qui est 7 et je parcours mon tableau pour complété a 8 mais quand je part d'un cilent qui a 6 dossiers je peux tres bien faire 6 + 1 + 1 ou 6 +2 il me faudrais donc faire une espece de table avec pour chaque cas les combinaisons possible pour arriver a 8 eet parcourir chaqe combinaison en regardant dans mon tableau si je dispode de client avec 2 doss ou des clients avec 1 doss ...
mais voila sa risque d"etre long et assez fastidieux donc si quelqun a une meilleur idée je suis preneur
merci
si je suis pas assez clair n'hesitez pas
-
-
ton probleme me semble plutot complexe et vague,
* il faudrait d abord savoir ou tu comptes stocker tes clients et leurs nombres de dossiers. Personnellement je rangerais dans un tableau les identifiants des clients (de 0 a 99 par exemple pour 100clients et ensuite de 100 a 199 leurs nombres de dossiers chacuns)
* ensuite quand ils sont stockés tu commences le rangement. Il faut donc que tu saches combien de clients a 7dossiers, combien en a 6 ... Tu peux faire une boucle pour en scannant par exemple le tableau précédent de 100 a 199.
* puis maintenant la répartition, à toi de voir la méthode que tu désires employer, mais tu n en es pas rendu là.
Dans tout projet il faut savoir séparer les différentes parties et les traiter une par une
-
merci pour le lien je peux mettre un nom sur l'algo par contre suis pas trés bon en maths (bou pas bien pour un informaticien) donc sa m'aide pas énormément 8O
-
merci ashin mais aucun probleme pour le stockage des clients et leurs tris par nombre de dossier cette partie du projet est traité il me reste les combinaisons a régler ,c'est a dire le plus compliqué
-
bon jvé t expliquer la méthode la plus simple qui optimise bien ton probleme (ce n est pas la meilleure méthode, certaines optimisent beaucoup mieux)
* init : tu disposes d un tableau de x valeurs ou x correspond a ton nombre de clients.
* tu commences par ranger ce tableau par ordre décroissant (ton tableau ressemble a ça : 7,7,..6,5,....1)
* ensuite tu ranges les dossiers dans des nouveaux emplacements de 8places si tu ne peux pas les mettre dans un emplacement précédent ...
exemple :
tableau rangé : {7,7,7,6,6,5,4,4,4,3,2,2,1,1,1,1,}
emplacement 1 :7 - 1
emplacement 2 :7 - 1
emplacement 3 :7 - 1
emplacement 4 :6 - 2
emplacement 5 :6 - 2
emplacement 6 :5 - 3
emplacement 7 :4 - 4 (on place les 2premiers 4 ici)
emplacement 8 :4 - 1
donc on créé des nveaux emplacement tant qu on ne peut le placer dans ceux créés précédements.
-
ok j'ai trouvé une solution merci a tous en tout cas