Combinaison

Fermé
beta - Modifié par beta le 18/03/2015 à 18:51
 beta - 21 mars 2015 à 16:55
bonsoir,s'il vous plait j' ai besoin vos aides avec un petit problème si possible.le problème est comme suit:
soient 2 groupes de type Arraylist. et un grand liste contient 4 nombres comme exemple[0.0,2.3,6.5,8.3].il faut le diviser le contenu sur le 2 groupes(la premier a un seul nombre et le reste "=3"sont met dans la 2éme groupe).on trouve 4 combinaisons possible.mon question est comment le générer tous les combinaisons de manière simple (un pseudo algorithme ou un démarche).
merci bq

1 réponse

yamdjio Messages postés 90 Date d'inscription lundi 18 août 2014 Statut Membre Dernière intervention 21 mai 2015 5
20 mars 2015 à 18:46
Bonjour, detaille un peu le procede de division pour qu'on puisse voir plus clair.
0
groupe 1=[0.0] et groupe 2=[2.3....]
groupe 1=[2.3] et groupe 2=[0.0,6.5,8.3]
groupe 1=[6.5] et groupe 2=[0.0,2.3,8.3]
...etc
si groupe 1=[0.0] alors { groupe 1=[0.0,2.3] et groupe 2=[6.5,8.3]
ou groupe 1=[0.0,6.5]et groupe 2=[2.3,8.3]
....etc}
jusqu'à ce que groupe 2=[]
je pense qu'il faut d'utilise un algorithme de backtrack mais je trouve des difficultés
0
yamdjio Messages postés 90 Date d'inscription lundi 18 août 2014 Statut Membre Dernière intervention 21 mai 2015 5
20 mars 2015 à 19:13
Donc si je comprends bien , on commence avec un nombre dans groupe 1 et 3 dans groupe deux, puis 2 dans groupe 1 et 2 dans groupe 2, puis 3 dans groupe et 1 dans groupe 2, et enfin 4 dans groupe 1 et 0 dans groupe deux???? et y a t-il l'ordre dans les éléments des groupes ????
0
non pas d'ordre
0
yamdjio Messages postés 90 Date d'inscription lundi 18 août 2014 Statut Membre Dernière intervention 21 mai 2015 5
21 mars 2015 à 14:53
Si le principe est tel que j'ai dit plus haut, alors le nombre de groupe total ets :
somme des combinaisons de (i, n). i allant de 1 a n (si groupe 1 ne doit pas etre vide ou 0 sinon).
Exemple si au depart on a 4 elements, on aura alors
C(0;4)+C(1;4)+C(2;4)+C(3;4)+C(4;4)
est tu d'accord avec ce calcul, c'est a base de lui qu'on peut trouver le pseudo code.
0
merci bq
0