PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV (versiones precedentes) → combinaison
combinaison
Iniciado por DF, 30,oct. 2019 06:50 - 10 respuestas
Miembro registrado
23 mensajes
Publicado el 30,octubre 2019 - 06:50
Bonjour,
Je voudrais faire des combinaisons avec 10 chiffres allant de 1 à 10 existe t’il un code pour faire des combinaisons, afin d'évité de long ligne de code
j'utilise WD19 merci

--
DF
Miembro registrado
1.922 mensajes
Publicado el 30,octubre 2019 - 08:44
Bonjour,

Peux-tu être plus précis et nous donner un exemple de ce que tu souhaites ?

--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
616 mensajes
Popularité : +3 (5 votes)
Publicado el 30,octubre 2019 - 14:51
Bonjour,
Tout à fait d'accord avec Philippe SB, cela manque cruellement de précision !
Es que les combinaisons incluent par exemple cette dernière : "1122334455" ou dans les combinaisons recherchée chaque chiffre ne doit être présent qu'une seule fois : 1234567890, 1234567809, etc...
De plus vous écrivez "10 chiffres allant de 1 à 10" hors 10 n'est pas un chiffre mais un nombre.
Ne vouliez pas plutôt écrire "10 chiffres allant de 0 à 9"

--
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai.
Quand un utilisateur vous a aidé, n'oubliez pas de le remercier...
Miembro registrado
23 mensajes
Publicado el 31,octubre 2019 - 17:28
bonsoir,
chaque chiffre ne doit être présent qu'une seule fois : 12345678910
exemple:
combi un chiffre: 1 ou 2 ou 3 ou 4 ou 5 6 ou 7 ou 8 ou 9 ou 10

combi 2 chiffres: 1 2 ou 1 3 ou ou 1 4 ou 1 5 etc
2 3 ou 2 4 ou2 5 ou 2 6 ... 2 10
3 4 OU 3 5 OU 3 6 OU 3 7 OU 3 8 ... 3 10
7 8 OU 7 9 OU 7 10
combi 3 chiffres: 1 2 3 OU 1 2 3 OU 1 2 9
4 7 8 OU 5 6 7 OU 5 8 10
combi 4 chiffres: 1 2 3 4 OU 1 5 6 OU 1 2 10
VOILA toute combinaison possible
pour mieux comprendre
https://www.dcode.fr/combinaisons…
Générateur de Combinaisons k parmi n
exemple Nombre d'éléments (K) 5
Parmi un total de (N) 10
10 chiffres = 1 combinaisons possibles
9 chiffres = 10 combinaisons possibles
8 chiffres = 45 combinaisons possibles
7 chiffres = 120 combinaisons possibles
6 chiffres = 210 combinaisons possibles
5 chiffres = 252 combinaison possibles
4 chiffres = 210 combinaison possibles
3 chiffres = 120 combinaisons possibles
2 chiffres = 45 combinaisons possibles
1chiffre = 10 combinaisons possibles
voila merci pour votre aide

--
DF
Miembro registrado
616 mensajes
Popularité : +3 (5 votes)
Publicado el 31,octubre 2019 - 22:57
Bonsoir,
"chaque chiffre ne doit être présent qu'une seule fois : 12345678910" -> '10' n'est pas un chiffre !!!
Chiffres € {0,1,2,3,4,5,6,7,8,9}. De plus le chiffre '1' est présent 2 fois dans votre exemple...
Si j'ai bien compris, vous voulez affichez toutes les combinaisons possibles, avec n=10 et p variant de 1 à 10 soit :
C(10,1) et C(10,2)...C(10,10) = (2^10-1) = 1023 chaines de caractère ?

--
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai.
Quand un utilisateur vous a aidé, n'oubliez pas de le remercier...
Miembro registrado
23 mensajes
Publicado el 01,noviembre 2019 - 05:41
bonjour,
10 chiffres = 1 combinaisons possibles
9 chiffres = 10 combinaisons possibles
8 chiffres = 45 combinaisons possibles
7 chiffres = 120 combinaisons possibles
6 chiffres = 210 combinaisons possibles
5 chiffres = 252 combinaison possibles
12345 la fin est 1 7 8 9 10
4 chiffres = 210 combinaison possibles
1,2,3,4 1,2,3,5 1,2,3,6 1,2,3,7 1,2,3,8 1,2,3,9 1,2,3,10 1,2,4,5 1,2,4,6 1,2,4,7 1,2,4,8 1,2,4,9 1,2,4,1 1,2,5,6 1,2,5,7 1,2,5,8 1,2,5,9 1,2,5,10 1,2,6,7 1,2,6,8 1,2,6,9 1,2,6,10 1,2,7,8 1,2,7,9 1,2,7,10 1,2,8,9 1,2,8,10 1,2,9,10 1,3,4,5 1,3,4,6 1,3,4,7 1,3,4,8 1,3,4,9 1,3,4,10 1,3,5,6 1,3,5,7 1,3,5,8 1,3,5,9 1,3,5,10 1,3,6,7
1,3,6,8 1,3,6,9 1,3,6,10 1,3,7,8 1,3,7,9 1,3,7,10 1,3,8,9 1,3,8,10 1,3,9,10 etc la fin des 1 et 1 8 9 10

2,3,4,5 2,3,4,6 2,3,4,7 2,3,4,8 2,3,4,9 2,3,4,10 2,3,5,6 2,3,5,7 2,3,5,8 la fin des 2 et 2 8 9 10


3 chiffres = 120 combinaisons possibles
1,2,3 1,2,4 1,2,5 1,2,6 1,2,7 1,2,8 1,2,9 1,2,10 1,3,4 1,3,5 1,3,6 1,3,7 1,3,8 1,3,9 1,3,10 1,4,5 1,4,6 1,4,7 1,4,8 1,4,9 1,4,10 1,5,6 1,5,7 1,5,8 1,5,9 1,5,10 1,6,7 1,6,8,,1,6,9 1,6,10 1,7,8 1,7,9 1,7,10 1,8,9 1,8,10 1,9,10

2,3,4 2,3,5 2,3,6 2,3,7 2,3,8 2,3,9 2,3,10 2,4,5 2,4,6 2,4,7 2,4,8 2,4,9 2,4,10 2,5,6 2,5,7 2,5,8 2,5,9 2,5,10 2,6,7 2,6,8 2,6,9 2,6,10 2,7,8 2,7,9 2,7,10 2,8,9 2,8,10 2,9,10

3,4,5 3,4,6 3,4,7 3,4,8 3,4,9 3,4,10 3,5,6 3,5,7 3,5,8 3,5,9 3,5,10 3,6,7 3,6,8 3,6,9 3,6,10 3,7,8 3,7,9 3,7,10 3,8,9 3,8,10 3,9,10


4,5,6 4,5,7 4,5,8 4,5,9 4,5,10 4,6,7 4,6,8 4,6,9 4,6,10 4,7,8 4,7,9 4,7,10 4,8,9 4,8,10 4,9,10

5,6,7 5,6,8 5,6,9 5,6,10 5,7,8 5,7,9 5,7,10 5,8,9 5,8,10 5,9,10

6,7,8 6,7,9 6,7,10 6,8,9 6,8,10 6,9,10

7,8,9 7,8,10 7,9,10

8,9,10
2 chiffres = 45 combinaisons possibles
1,2 1,3 1,4 1,5 1,6 1,7 1,8 1,9 1,10 2,3 2,4 2,5 2,6 2,7 2,8 2,9 2,10 3,4 3,5 3,6 3,7 3,8 3,9 3,10 4,5 4,6 4,7 4,8 4,9 4,10
5,6 5,7 5,8 5,9 5,10 6,7 6,8 6,9 6,10 7,8 7,9 7,10 8,9 8,10 9,10

1chiffre = 10 combinaisons possibles:
1 2 3 4 5 6 7 8 9 10

oui 1023 chaines de caractère donc en code trops de lignes
voila merci pour votre aide

--
DF
Miembro registrado
23 mensajes
Publicado el 02,noviembre 2019 - 19:28
hello ya quelqu’un ?

--
DF
Miembro registrado
616 mensajes
Popularité : +3 (5 votes)
Publicado el 03,noviembre 2019 - 14:27
Bonjour,

voici le code qui devrait vous satisfaire :
1° déclarer en globale
tblListeDesCombinaisons est un tableau dynamiquedynamique de 0 chaînes


2° code à mettre dans une fonction et à adapter suivant votr besoin
MesElements est une chaîne
//MesElements = "0;1;2;3;4;5;6;7;8;9"
//MesElements = "A;B;C;D;E;F;G;H;I;J"
MesElements = "A1;B2;C3;D4"

n, i est un entier
TblElements est un tableau de chaînes

ChaîneVersTableau(MesElements, TblElements, ";")
n = Dimension(TblElements)

FOR i=1 _TO_ n
getCombinaison("", TblElements, i)
END

// Affichage des combinaisons
IF Dimension(tblListeDesCombinaisons) > 1 THEN
Trace("Nb combinaisons = " + (Puissance(2,n)-1))
FOR i=1 _TO_ Dimension(tblListeDesCombinaisons)
Trace(ChaîneConstruit("[%1] -> %2", i, tblListeDesCombinaisons[i]))
END
END


3° procédure de création des combinaisons pour 1 niveau
Procedure getCombinaison(Combinaison est une chaîne, TblSousElements est un tableau de chaîne, Level est un entier )
n, i est un entier
NewTbl est un tableau de chaînes

IF Level = 0 THEN
Dimension(tblListeDesCombinaisons, Dimension(tblListeDesCombinaisons)+1)
tblListeDesCombinaisons[Dimension(tblListeDesCombinaisons)] = Combinaison[[1 A Taille(Combinaison)-1]]
RETOUR
ELSE
n = Dimension(TblSousElements)
FOR i = 1 _TO_ n
TableauCopie(TblSousElements, NewTbl, i+1)
getCombinaison(Combinaison+TblSousElements[i]+TAB, NewTbl, Level-1)
END
END


--
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai.
Quand un utilisateur vous a aidé, n'oubliez pas de le remercier...
Miembro registrado
616 mensajes
Popularité : +3 (5 votes)
Publicado el 03,noviembre 2019 - 16:10
erreur de copie en 1° il faut : tblListeDesCombinaisons est un tableau dynamique de 0 chaînes et non tblListeDesCombinaisons est un tableau dynamiquedynamique de 0 chaînes

--
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai.
Quand un utilisateur vous a aidé, n'oubliez pas de le remercier...
Miembro registrado
23 mensajes
Publicado el 04,noviembre 2019 - 09:25
bonjour Philippe
je te remercie de ton aide je vais essayer et je te tiens au jus bonne journée a toi.
CORDIALEMENT

--
DF
Miembro registrado
23 mensajes
Publicado el 17,noviembre 2019 - 18:37
bonjour Philippe
Toujours pas essayé votre code boulot oblige je vous tiens au courant bonne soirée

--
DF