probleme de mathematique combinatoire. aide

Pour parler math...

Modérateur : Modérateurs

Répondre
bruno

probleme de mathematique combinatoire. aide

Message par bruno » 15/02/2005 - 19:39:17

Bonjour a tous
Je souhaiterai mettre en logiciel en Excel (macro)ou en vba.le problème suivant.

a)Soit une série numérique non chronologique S={x1, x2, x3,…..xn) compose de N chiffre.
Ex : S={1,4,6,8,9,10,2,20,25,30) soit N=10 chiffres.


b) Cette série S sera décompose en X groupe ou chaque groupe sera compose de Nb chiffres.
Le contenu entre chq groupe étant différent .chq groupe aura une condition CDt (m, M).
pour un grp X, la condition m (minimum) et M (maximum) signifie que il faudra utilise au minimum 2 chiffre et au Maximum 3 chiffres du groupe considère.
Ex grp1={1,4,9,10} Cdt =2 à 3
grp2= {6,8,2} Cdt= 1 à 2
grp3={20.25.30} Cdt= 0à 1


Au final
Chaque combinaison sera compose de l’association des groupes pour une longueur L
L étant le nb de chiffre dans la combinaison.
Combinaison =N (grp1 (Cdt)) +N (grp2 (Cdt)) +N (grp3 (Cdt))

Soit l’exemple reprenant les données ci-dessus.

S={1,4,6,8,9,10,2,20,25,30}
N =10, L=3
X=3 donc 3 groupe Grp1={1,4,9,10} ; grp2= {6,8,2} ; grp3={20.25.30}
Condition pour le Grp(1) ; Cdt de minimum =2 à Max=3
Condition pour le Grp(2) ; Cdt min =1 à Max =2
Condition pour le Grp(3) ; Cdt min =0 à Max=1

On décompose pour chq groupe
Grp1 (cdt2) donne (1.4) ;(1.9) ;(1.10) ; (4.9) ;(4.10) ;(9.10)
(cdt3) donne (1.4.9) ;(1.4.10) ;(4.9.10),(1.9.10)
Grp2 (Cdt1) donne 6 ;8 ;2
Cdt2 (donne (6.8) ;(6,2) ;(8.2)
Grp3 (cdt0) ne donne aucun chiffre
(cdt1) donne 20 ; 25 ; 30

Au final les combinaisons seront l’association de Grp1+Grp2+GRp3
1.4/6/0 retenu car l=3
1.4/6/20 non retenu car nb de chiffre dans la combi =4 >L=3
1.4/6/25 non retenu car nb de chiffre dans la combi =4 >L=3
1.4/8/0 retenu car l=3
1.4/6/20 non retenu car nb de chiffre dans la combi =4 >L=3
etc……

Une précision
Les valeurs des paramètres S, L, X ,Grp(x), m et M sont variables et donc rentres par l’utilisateur.

Merci d’avance.

si cela n'est pas clair, je peux eclaircir

bruno

:fada:

Avatar de l’utilisateur
fffred
Messages : 1538
Inscription : 10/06/2004 - 19:40:27
Localisation : ile de france

Message par fffred » 15/02/2005 - 20:17:15

en voila un programme bizarre :fada:
c'est pas très difficile à réaliser, mais je n'ai jamais fait de macro excel ni de vb
par contre en C par exemple ca doit pas être très dur
je suis certain que vous croyez avoir compris ce que j'essayais de vous dire, mais êtes-vous sûr que ce que j'ai dit correspondait vraiment à ce que je voulais dire ?

bruno

Message par bruno » 15/02/2005 - 20:54:27

bonsoir
Va pour le langage C, mais perso je ne n'ai jamais programme en C
.
bruno

Avatar de l’utilisateur
fffred
Messages : 1538
Inscription : 10/06/2004 - 19:40:27
Localisation : ile de france

Message par fffred » 15/02/2005 - 21:47:27

en fait le seul problème c'est pour rentrer la valeur des éléments des groupes
je vois pas d'autre moyen que de tous les rentrer un à un

ou alors aléatoirement ? :heink:
je suis certain que vous croyez avoir compris ce que j'essayais de vous dire, mais êtes-vous sûr que ce que j'ai dit correspondait vraiment à ce que je voulais dire ?

bruno

valeurs des groupes

Message par bruno » 16/02/2005 - 3:44:41

bonsoir :fada:
Exact, un oublie de ma part ,
effectivement , quand l'utiilisateur , a tout selectionne, nb de groupe, garantie par groupe, longueur, il doit rentrer a la moins les valeurs dans chaque groupe . par contre il faudrait verifier que toutes les valeurs rentres appartiennent bien à la Serie S et quelles sont uniques .
bruno

Avatar de l’utilisateur
fffred
Messages : 1538
Inscription : 10/06/2004 - 19:40:27
Localisation : ile de france

Message par fffred » 16/02/2005 - 22:49:03

c'est un peu chiant a faire comme prgm :grat2:

calculer les combinaisons c'est facile, mais la partie pour rentrer les valeurs c'est assez chiant
ou alors il faut éditer le programme à chaque fois

en fait j'ai pas vraiment envie de faire de l'allocation dynamique de mémoire juste pour ca :D

a mon avis le C n'est pas fait pour ca

mais ce programme c'est pour faire beaucoup de calculs, avec de très grandes suites ?
je suis certain que vous croyez avoir compris ce que j'essayais de vous dire, mais êtes-vous sûr que ce que j'ai dit correspondait vraiment à ce que je voulais dire ?

bruno

progra

Message par bruno » 17/02/2005 - 3:27:19

;)
salut
Pour la longueur de la serie le maxi sera minimun 3 maxi 80
le nombre de groupe sera au minimun de 3 au maxi de 10
dans chaque groupe le mini sera 0 à 20 .
Pour rentrer les donnees de chaque groupe ne peut on pas ouvrir une fenetre qui demandera a l'utilisateur:
ex: Groupe 1 a) combien de donnees à rentrer ? XX +( validation)
b) veuillez rentrer vos donnees ! x +(validation) + test
que le nb de donnees rentrees correspond au nombre du
groupe rentre en A)

si cela est plus simple , a chaque lancement du programme les variables peuvent etre initialisees .
bruno

Avatar de l’utilisateur
fffred
Messages : 1538
Inscription : 10/06/2004 - 19:40:27
Localisation : ile de france

Message par fffred » 17/02/2005 - 13:26:02

arf je ne sais pas faire ca (gérer les fenêtres)!
je ne fais que du calcul scientifque .....

il faudrait le faire en vba
mais ca je ne peux pas
:(
je suis certain que vous croyez avoir compris ce que j'essayais de vous dire, mais êtes-vous sûr que ce que j'ai dit correspondait vraiment à ce que je voulais dire ?

SurfMaths
Messages : 7
Inscription : 03/04/2005 - 16:47:52
Localisation : France

Message par SurfMaths » 12/08/2005 - 18:10:32

Ouf, j'ai pigé. Sauf que la taille des groupe est faite comment quand le nombre de chiffres n'est pas un multiple du nombre de groupes. Et on met les chiffres aléatoirement dans chaque groupe. :heink:
Cordialement SurfMaths

Seb
Messages : 157
Inscription : 29/08/2004 - 20:33:30
Localisation : Toulouse

Message par Seb » 21/08/2005 - 14:50:30

C'est faisable dans excel en utilisant les macros et les userForm pour faire les fenêtres qui apparaissent.
J'ai quelques questions :
1-Est ce qu'on peut avoir plusieurs fois le même nombre dans la série S ?

2-Est-ce que c'est l'utilisateur qui choisi quel valeur il mets dans tel ou tel groupe ou est ce que c'est fait aléatoirement ? Si c'est l'utilisateur qui choisi est ce que ce n'est pas plus simple de partir directement des groupes rentrés par l'utilisateur plutot que de la série ?

3-Dans la première combinaison "1.4/6/0" tu dis qu'il y a 3 chiffres alors que j'en compte 4 (à moins que le 0 ne soit en fait Ø auquel cas tu ne le compte pas).

4-A quoi ça sert ? :siffle:

Répondre