Statistiques

alb05

XLDnaute Occasionnel
Bonjour
Y a t'il un doué en statistiques et en Excel à la fois pour m'aider à générer toutes les combinaisons ou arrangements (je n'ai jamais vraiment su faire la différence) possibles.
L'idée est d'avoir des colonnes d'options que l'on peut combiner entre elles et de créer sur les lignes, toutes ces combinaisons.
Le must est de codifier chaque combinaison sur un code à 2 caractères Alphanumérique.

Combien de combinaisons peut on avoir avec 2 caractères alphanumériques et donc combien peut on avoir d'options avec 2 caractères si c'est une limite ?
A0 ... A9
Z0 ... Z9
AA .. ZZ
00 .. 99
0A .. 9Z

merci de votre aide scientifique et technique.
 

Pièces jointes

  • Combinaisons.xls
    13.5 KB · Affichages: 72
  • Combinaisons.xls
    13.5 KB · Affichages: 81
  • Combinaisons.xls
    13.5 KB · Affichages: 80
Dernière édition:

alb05

XLDnaute Occasionnel
Re : Statistiques

Avec 2 caractères, il y a 1296 codes possibles :

D'abord 100 codes rien qu'avec les numériques : 10^2
00 01 02 03 04 05 06 07 .... 99

Puis 676 codes qu'avec les 26 lettres de l'alphabet : 26^2
AA AB AC .. AZ BA BC ..... ZZ

Puis 260 codes avec les lettres en 1er caractère puis 1 chiffre en 2ème caractère :
A0 A1 .. A9 B0 B1 .... Z9

Puis 260 codes en faisant l'inverse :
0A 0B 0C ... 0Z 1A 1B ... 9Z

Existe t-il une possibilité d'automatiser la création de ces 1296 codes dans 1296 lignes ? (comment faire +1 sur des Lettres !)

merci de votre aide pour m'éviter un travail manuel de création de ces 1296 lignes.
 

alb05

XLDnaute Occasionnel
Re : Statistiques

Bonjour
Le rapport c'est d'abord de générer les 1296 codes de la colonne A.

Ensuite, ce sera de créer en face de ces codes les 127 combinaisons ((2^7)-1) des 7 options actuels.
Avec possibilités d'ajouter de nouvelles options.
Jusqu'à 10 car c'est la limite des codes générés préalablement
(2^10=1024) alors OK
mais (2^11=2048) alors KO car > à 1296

Est ce plus clair ainsi.

Par avance merci de l'aide que tu pourras bien m'apporter.
 

job75

XLDnaute Barbatruc
Re : Statistiques

Bonjour alb05, kjin,

Nombres de caractères n = 26 +10 = 36

Nombres de couples c = n ^ 2 = 36 ^ 2 = 1296

Cela se rapproche des arrangements, mais comme chaque caractère peut être utilisé 2 fois, je préfère le terme de couple.

La macro pour les afficher en colonne A :

Code:
Sub CouplagesDeuxValeurs()
Dim n%, i%, j%
n = 1
For i = 48 To 90
  For j = 48 To 90
    If (i < 58 Or i > 64) And (j < 58 Or j > 64) Then
      n = n + 1
      Cells(n, 1) = [COLOR="red"]IIf(i = 48 And j < 58, "'", "") &[/COLOR] Chr(i) & Chr(j)
    End If
  Next
Next
End Sub

Le code en rouge introduit un guillemet simple ' pour afficher les valeurs numériques commençant par 0 mais on peut mettre les 10 premières cellules au format texte et supprimer ce code.

A+
 
Dernière édition:

alb05

XLDnaute Occasionnel
Re : Statistiques

C'est exactement se que je souhaitais au niveau de la génération des codes.
Merci Job75.

Pour la 2ème phase; celle qui consiste à générer les 127 combinaisons d'options, l'idée est de commencer à la ligne 2 correspondant au premier code créé précédemment.
Pour cocher une option, quelle est la meilleur solution pour ensuite pour réutiliser cette valeur dans une cases à cocher par la suite ? : des X ou des 1 ou des VRAI ?

Encore merci de votre aide.
 

Pièces jointes

  • Combinaisons.zip
    20.6 KB · Affichages: 62
  • Combinaisons.zip
    20.6 KB · Affichages: 33
  • Combinaisons.zip
    20.6 KB · Affichages: 34

alb05

XLDnaute Occasionnel
Re : Statistiques

Les colonnes B à H représentent des options sur des voitures.
DA : Direction Assistée
VE : Vitres électriques
FC : Fermeture Centralisée
PMI : Peinture Métal Intégrale
RGV : Régulateur de Vitesse
CL : Climatisation
RD : Radio CD MP3 6HP

La colonne A sert d'identification automatique des combinaisons possibles d'options.

L'objectif est de générer les "1" des 127 combinaisons d'options possibles.

Exemple de combinaisons :
CODES DA VE FC PMI RGV CL RD
00 1
01 1 1
02 1 1 1
03 1 1 1 1
04 1 1 1 1 1
05 1 1 1 1 1 1
06 1 1 1 1 1 1
07 1 1 1 1 1 1 1
08 1 1
09 1 1 1
0A 1 1 1 1
0B 1 1 1 1 1
0C 1 1 1 1 1 1

Cela veut dire par exemple que la combinaison
"00", c'est une finition avec DA.
"01", c'est une finition avec DA + VE
et ainsi de suite.

7 options, génèrent 127 combinaisons possibles. Cela veut dire que seuls les 127 premiers codes vont être utilisés. Mais ce n'est pas grave car je serais amené à ajouter d'autres options. Jusqu'à 10, car après je dépasserai les 1296 codes créés.

Est ce plus clair maintenant ?
 

alb05

XLDnaute Occasionnel
Re : Statistiques

Bonjour,
ci joint le fichier source avec une autre façon de voir la progressivité des combinaisons.
Est ce que cela vous inspire plus ?
Le problème est double :
1/ Avoir un algorithme qui s'adapte en fonction du nombre d'options (= nombre de colonnes) :
(Partir de la 1ère colonne puis générer un décalage de 1 colonne jusqu'à la dernière)
2/ Transcrire cet algorithme en langage VBA.


encore merci de votre aide.
 

Pièces jointes

  • Combinaisons.zip
    23.1 KB · Affichages: 32
  • Combinaisons.zip
    23.1 KB · Affichages: 35
  • Combinaisons.zip
    23.1 KB · Affichages: 34

job75

XLDnaute Barbatruc
Re : Statistiques

Bonjour alb05, le forum,

Toujours pas compris ce que vous essayez de faire.

Mais s'il s'agit d'afficher les 2 ^ n - 1 combinaisons de n options, voyez le fichier joint.

La macro fonctionne pour un maximum de 11 options, de B1 à L1.

Pour 10 options, effacez L1, pour 9 options, effacez K1 et L1, etc...

A+
 

Pièces jointes

  • Combinaisons(1).zip
    17.4 KB · Affichages: 36
Dernière édition:

alb05

XLDnaute Occasionnel
Re : Statistiques

Bonjour,
à ce stade, les codes de la colonne A ont bien été créés avec la fonction CouplagesDeuxValeurs() des lignes 2 à 1297.

La nouvelle étape est de générer les 1 dans les colonnes B à H.
Avec 7 colonnes, il doit y avoir 127 combinaisons.
La première combinaison est à enregistrer sur la ligne 2.
La deuxième combinaison est à enregistrer sur la ligne 3.
etc ...

Une combinaison est l'ensemble des possibilités avec les 7 options.

Exemple d'une combinaison :
DA VE FC PMI RGV CL RD
1 0 0 0 0 0 0

L'idée est d'affecter cette combinaison à un code
par exemple le 1ère de la liste "00" de la ligne 2.

est ce plus clair maintenant ?

En synthèse, il faut un programme qui créé les 127 combinaisons en mettant des 0 ou des 1 dans les colonnes B à H.

NB : j'ai nommé ce topic "statistiques" car pour moi la génération de codes me rappel mes années lycées avec les calculs d'Arrangements, de Combinaison et de Loi Binomiale (c'était il y a longtemps).

merci de votre patience à relire mes explications qui ne sont pas claires.
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Statistiques

Bonjour à tous
Comme vous, je ne vois pas bien ce qu'il faut faire dans les colonnes B et suivantes.
Pour ce qui est de la colonne A, il me semble que notre ami souhaite obtenir ses codes dans un ordre différent de celui qu'induit la table ASCII (obtenir, par exemple, A0 avant 00).
A cette fin, je propose :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim CD, SO, i As Long, j As Long, k As Long, l As Long
   CD = Array(4, _
      Array( _
         Array(26, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"), _
         Array(10, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9")), _
      Array( _
         Array(26, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"), _
         Array(26, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")), _
      Array( _
         Array(10, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"), _
         Array(10, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9")), _
      Array( _
         Array(10, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"), _
         Array(26, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")))
   ReDim SO(1 To 1, 1 To 1)
   For i = 1 To CD(0)
      For j = 1 To CD(i)(0)(0)
         For k = 1 To CD(i)(1)(0)
            l = l + 1
            ReDim Preserve SO(1 To 1, 1 To l)
            SO(1, l) = "'" & CD(i)(0)(j) & CD(i)(1)(k)
         Next k
      Next j
   Next i
   Range("A2").Resize(l, 1).Value = WorksheetFunction.Transpose(SO)
End Sub[/B][/COLOR]
qui semble fournir les codes dans l'ordre souhaité (si j'ai bien compris, ce dont je ne jurerais pas).​
ROGER2327
#2601


_
__________________
P.s. : Je n'avais pas encore vu le message précédent en écrivant celui-ci.
 

alb05

XLDnaute Occasionnel
Re : Statistiques

Bonjour ROGER2327,
L'ordre m'importait peu et merci quant même pour ta méthode de génération des 1296 codes possibles avec 2 alphanumériques.

Maintenant ce sont les combinaisons de 0 et de 1 qui m'intéressent.
Et là non plus, je n'ai pas de préférence quand à l'ordre où seront présentées les 127 combinaisons de 0 et 1.

merci à tous de votre collaboration
 

job75

XLDnaute Barbatruc
Re : Statistiques

Re, salut Roger,

Voici le remplissage des colonnes B à L pour les 2 ^ n - 1 combinaisons de n options.

Toujours pour un maximum de 11 options de B1 à L1.

La macro est voisine de celle de mon post #10.

La colonne A ne sert à rien (d'ailleurs elle est vide)...

Edit : si l'on veut des zéros, prendre la version (3), il suffit de déclarer tablo%() . Perso je préfère la (2)...

A+
 

Pièces jointes

  • Combinaisons(2).zip
    19.2 KB · Affichages: 37
  • Combinaisons(3).zip
    19.2 KB · Affichages: 34
Dernière édition:

Membres actuellement en ligne

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 569
dernier inscrit
zeiffel976