Re: Analyse combinatoire
#11
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 14-06-2008 11h52
À tout hasard,

Public Function ArrangeMoiCa(NombreDeLettres As Long) As String

  Dim Lettres 
As String
  Dim Candidat 
As String
  Dim I 
As Long
  Dim Position 
As Long
  Dim Arrangement
() As String
  
  ReDim Arrangement
(NombreDeLettres 1)
  
  
' Première Lettre
  Arrangement(0) = Chr(65 + Int((Rnd * 26)))
  
  Do While I < NombreDeLettres - 1
    I = I + 1 ' 
Index de la prochaine Lettre
    
    Lettres 
Join(ArrangementvbNullString' Mise en mémoire pour Ã©viter la répétition
    Candidat = Chr(65 + Int((Rnd * 26))) ' 
Première tentative
    Position 
InStr(LettresCandidat)
    
    
' Tant que la Lettre est déja dans la chaîne, on en change.
    Do While Position <> 0
      Candidat = Chr(65 + Int((Rnd * 26)))
      Position = InStr(Lettres, Candidat)
    Loop
    
    ' 
En vlà une bonne
    Arrangement
(I) = Candidat
  Loop
  
  
' La chaîne est complète, on la retourne
  ArrangeMoiCa = Join(Arrangement, vbNullString)
  
End Function

Hors Ligne
Rapport   Haut 

Re: Analyse combinatoire
#12
Aspirant XLPages

Inscription: 31/03/2008

Messages: 31

Système d'exploitation:
PC
Version Excel utilisée:
Excel 2003
Posté le : 16-06-2008 15h14
Bonjour,
Je cherche à déterminer la valeur d'un arrangement quelconque de 6 lettres sans répétitions
Exemple : RTMCKU 113 104 273
ABCDEF 1
ZYXWVU 165 765 600
J'ai décortiqué les différentes phases de la procédure (copie jointe)
J'aimerais savoir ce que tu en penses

D'autre part serait-il possible de créer dans une autre feuille la liste des arrangements lettres et valeurs obtenus
Remerciements anticipés pour tes aide et conseils
Cordialement
Pièce jointe:
zip Séquences 6 Lettres modifiées.zip   [ Taille: 25.26 Ko - Téléchargements: 781 ]
Hors Ligne
Rapport   Haut 

Re: Analyse combinatoire
#13
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 16-06-2008 23h05
Bonjour,

Si je comprends un peu mieux, tu cherches à établir une relation d'ordre dans l'ensemble des arrangements (A) de six lettres de l'alphabet.

Bon, mettons.

Alors, toujours dans l'hypothèse que j'y pige quoi que ce soit :
Tu indiques que ABCDEF est l'arrangement numéro 1, soit.
Mais là où je me perds c'est lorsque tu indiques que l'arrangement RTMCKU a le numéro d'ordre 113 104 273.
Et à quoi correspond l'arrangement numéro 2?

Ce peut être à mon sens n'importe quel autre... tout dépend de la relation d'ordre dont tu souhaites munir l'ensemble A
On peut effectivement établir une relation d'ordre dans cet ensemble mais c'est qu'il y en a des tas tous aussi valides les uns que les autres. Essentiellement il y en a autant que de bijections entre l'ensemble {0, 165 765 599} et A soit un paquet de l'ordre de Card(A)! (La factorielle de la cardinalité de A) Sky is no longer a limit

À moins que tu n'indiques comment tu comptes ordonner l'ensemble des arrangements, il y a fort à parier que nous n'y arriverons jamais.

Dans l'attente de précisions,

Cordialement,

Guy

Hors Ligne
Rapport   Haut 

Re: Analyse combinatoire
#14
Aspirant XLPages

Inscription: 31/03/2008

Messages: 31

Système d'exploitation:
PC
Version Excel utilisée:
Excel 2003
Posté le : 18-06-2008 10h54
Bonjour,
Voilà quelques précisions :
ABCDEF = 1
ABCDEG = 2
ABCDEZ = 21
ABCDFE = 22
ABCDFZ = 42
ACDEFG = 266135
Etc....
D'autre part il faut exécuter la procédure Epuration
avant d'exécuter la procédure Fusion_Phases qui permet d'établir un nouvel arrangement.

Serait-il possible d'envoyer les résultats Alpha et Valeurs dans une nouvelle feuille sous forme de liste.
Merci d'avance.
Cordialement
Hors Ligne
Rapport   Haut 

Re: Analyse combinatoire
#15
Accro XLPages

Inscription: 17/08/2007
De Québec, Canada

Messages: 180

Système d'exploitation:
PC
Version Excel utilisée:
Excel 2003, 2007 (FR) & MsProject 2003
Posté le : 22-06-2008 01h13
Salut le forum

Pour faire une liste sur une base de Ti_ pour les macros

Mytå
Pièce jointe:
xls AnalyseCombinatoire.xls   [ Taille: 46.00 Ko - Téléchargements: 884 ]

Merci, de donner un retour à votre question, nous ne sommes pas des robots. [GMT - 5]
Le travail d'équipe est essentiel. En cas d'erreur, ça permet d'accuser quelqu'un d'autre.
Hors Ligne
Rapport   Haut 

Re: Analyse combinatoire
#16
Accro XLPages

Inscription: 23/05/2007
De Chamrousse

Messages: 309

Système d'exploitation:
PC
Version Excel utilisée:
2013
Posté le : 22-06-2008 08h21
Bonjour à tous,
Bienvenue à Mytå ,

Un plaisir de te relire sur un Forum
Il a fallu "combiner" le savoir de Ti_ et Mytå.
Bravo

A++
A+ à tous


Cordialement
Hors Ligne
Rapport   Haut 

Re: Analyse combinatoire
#17
Accro XLPages

Inscription: 17/08/2007
De Québec, Canada

Messages: 180

Système d'exploitation:
PC
Version Excel utilisée:
Excel 2003, 2007 (FR) & MsProject 2003
Posté le : 22-06-2008 23h58
Salut le forum

JCGL, ca fait un bout que je suis enregistré, mais le manque de
temps ne permettait pas bien souvent de répondre aux questions.

J'espère que Lotus27 à Excel2007, car 230 230 combinaisons
sans doublons. Sinon 5 tableaux de 46046 lignes :)

Attention au temps de recalcul des matricielles....

Mytå
Hors Ligne
Rapport   Haut 

Re: Analyse combinatoire
#18
Débutant XLPages

Inscription: 16/03/2008

Messages: 6

Posté le : 29-06-2008 15h42
Bonjour le fil et toi le Forum,
De passage parmi vous, ce fil m'a remémoré une histoire de combinaisons possibles du Loto.
Il semble que Lotus27 cherchait à créer les différentes combinaisons possibles.
Citation :
D'autre part serait-il possible de créer dans une autre feuille la liste des arrangements lettres et valeurs obtenus

a mon avis une seule feuille (excel2002) ne suffit pas car le nombre de combinaisons doit être énorme.
La macro suivante génère ces différentes possibilités mais les ressources de ma machine (un peu vieille) font que je suis tombé en manque de ressources après avoir écrit 2 023 703 combinaisons. C'est peu quand on sait que cette combinaison est constituée de AIYMHU. A la louche, je dirai qu'on va dépasser les 50 millions de combinaisons.
En attendant d'avoir une machine mieux sourcée, je vous joins le code utilisé pour générer ces combinaisons:
Sub Combinaisons()
'by Marco57 28/06/08
Dim Num1 As Byte, Num2 As Byte, Num3 As Byte, Num4 As Byte, Num5 As Byte, Num6 As Byte
Dim L&, N&, C As Byte, Alpha As Variant, T#
  
  Alpha = Array("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")

  T = Timer
  L = 1
  C = 0
'  
Application.ScreenUpdating False
  
For Num1 0 To UBound(Alpha)
    For 
Num2 0 To UBound(Alpha)
      For 
Num3 0 To UBound(Alpha)
        For 
Num4 0 To UBound(Alpha)
          For 
Num5 0 To UBound(Alpha)
            For 
Num6 0 To UBound(Alpha)
              If 
Not (Num1 Num2 Or Num1 Num3 Or Num1 Num4 Or Num1 Num5 Or Num1 Num6 Or _
                      Num2 
Num3 Or Num2 Num4 Or Num2 Num5 Or Num2 Num6 Or _
                      Num3 
Num4 Or Num3 Num5 Or Num3 Num6 Or _
                      Num4 
Num5 Or Num4 Num6 Or Num5 Num6Then
                L 
11
                
If 65002 Then
                  C 
22:  ActiveCell.Offset(02).Select
                End 
If
                
Cells(LC) = Alpha(Num1) & Alpha(Num2) & Alpha(Num3) & Alpha(Num4) & Alpha(Num5_
                                  
Alpha(Num6)
                
Cells(LC) = N
              End 
If
            
Next Num6
          Next Num5
        Next Num4
      Next Num3
    Next Num2
  Next Num1
  
  MsgBox Format
((65000 C) + L"#,##0") & " Combinaisons calculées en " Format(Timer T"0.00") & " secondes."
  
End Sub


Pour l'instant tout est sur la même feuille mais en plusieurs colonnes. Le changement de feuille éventuellement nécessaire n'est pas très complexe mais je vais d'abord tenter de trouver une machine capable de mémoriser tout cela.

A+

Marco57
Hors Ligne
Rapport   Haut 

Re: Analyse combinatoire
#19
Accro XLPages

Inscription: 17/08/2007
De Québec, Canada

Messages: 180

Système d'exploitation:
PC
Version Excel utilisée:
Excel 2003, 2007 (FR) & MsProject 2003
Posté le : 30-06-2008 15h09
Salut le forum

J'avais déjà fournit un code similaire sur un autre forum.

Sub Combinaisons()

Dim Num1 As Byte
Dim Num2 As Byte
Dim Num3 As Byte
Dim Num4 As Byte
Dim Num5 As Byte
Dim Num6 As Byte
Dim NbreNum As Byte
Dim L As Long, C As Byte

L = 1
C = 0

NbreNum = 26

For Num1 = 1 To NbreNum
 For Num2 = Num1 + 1 To NbreNum
  For Num3 = Num2 + 1 To NbreNum
   For Num4 = Num3 + 1 To NbreNum
    For Num5 = Num4 + 1 To NbreNum
     For Num6 = Num5 + 1 To NbreNum
     
Cells(L, 1 + C) = Chr$(64 + Num1) & ";" & Chr$(64 + Num2) & ";" & Chr$(64 + Num3) _
                    & ";" & Chr$(64 + Num4) & ";" & Chr$(64 + Num5) & ";" & Chr$(64 + Num6)
L = L + 1
If L = 65001 Then
C = C + 1
L = 1
End If

     Next Num6
    Next Num5
   Next Num4
  Next Num3
 Next Num2
Next Num1

End Sub
Mytå

Merci, de donner un retour à votre question, nous ne sommes pas des robots. [GMT - 5]
Le travail d'équipe est essentiel. En cas d'erreur, ça permet d'accuser quelqu'un d'autre.
Hors Ligne
Rapport   Haut 

Re: Analyse combinatoire
#20
Débutant XLPages

Inscription: 16/03/2008

Messages: 6

Posté le : 30-06-2008 19h03

Bonsoir Mytå et toi le Forum,

Je crains de t'avoir choqué en mettant ce code car il est très proche du tien et en plus pour une fois, je l'ai signé.

Comme je le disais hier, cette question me remémorait une histoire de Loto National.
 
En fait c'était ICI

C'est vieux de près de deux ans et je puis t'assurer que ce code est de moi.

Je suis d'ailleurs quelque peu flatté d'avoir écrit le même code que toi et j'espère que pour une rare intervention de ma part sur votre Forum, ma bonne foi ne sera pas mise en doute.

Très cordialement

Marco57 







Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes