3 nombres sur 9 dans tous les sens

Résolu
anselmejour Messages postés 28 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 9 octobre 2006 - 24 sept. 2006 à 13:34
 Vb Lover - 12 oct. 2006 à 10:11
bonjour
sur une liste de 9 nombres il me les faut par 3  tous mais une seule fois

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

je dois obtenir (
dans un listdictionnary par exemple
)
123
124
125
126
129
...
234
245
...

mais bien sur pas 321 ni 524 car ils sont deja dans ma liste : 123 et 245

merci pour l'aide

42 réponses

Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
24 sept. 2006 à 17:40
J'ai l'impreesion que depuis le début c'est un dialogue de sourds ce topic. En vb.net comme en vb6, l'algo pour obtenir cette liste de combinaison est pourtant simple et je l'ai donné plus haut. Le re-voilà adapté à ton code à part que je ne sais pas ce que tu veux faire avec ta variable i.

Dim neufa As New StringCollection
            For X As Integer = 1 To 9
                neufa.Add(X.ToString)
            Next
            Dim a, b, c As Integer

            Dim sb As New StringBuilder
            


Dim i As Integer = 0


            For a = 0 to 7
                For b = a + 1 to 8
                   For c = b + 1 to 9
                        sb.AppendFormat("{0} {1} {2}
", neufa(a), neufa(b), neufa(c))
                    Next
                Next
            Next

            Me.AddLiteral(i.ToString & "<hr />")
            Me.AddLiteral(sb.ToString)
3
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
24 sept. 2006 à 17:50
Mille excuses, une erreur de copier coller :

à la place de :

            For a = 0 to 7
                For b = a + 1 to 8
                   For c = b + 1 to 9

met :
            For a = 0 to 6
                For b = a + 1 to 7
                   For c = b + 1 to 8
3
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
24 sept. 2006 à 13:39
une liste de 9 nombres ou 9 chiffres ?
0
anselmejour Messages postés 28 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 9 octobre 2006
24 sept. 2006 à 13:48
123
124
125
126
129
...
234
245
...


il faut les marier par 3 mais une seule fois


123 mais pas 213, 321, 231 ....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 sept. 2006 à 14:31
salut,
regarde dans les sources de loto

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
anselmejour Messages postés 28 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 9 octobre 2006
24 sept. 2006 à 15:03
merci mais je ne trouve pas ce que je  cherche
0
anselmejour Messages postés 28 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 9 octobre 2006
24 sept. 2006 à 15:07
je cherche juste une fonction simple pour me generer cette liste
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
24 sept. 2006 à 15:21
peut-etre çà non ?







FOR



a=1
TO
9

 FOR
b=2
TO
9

  FOR
c=3 TO


9
   reult=
STR
(a)+
STR
(b)+
STR
(c)

  next a
 next b
next c

non, çà fait pas ?
0
Profil bloqué
24 sept. 2006 à 15:25
Salut anselmejour
Je t'ai mis un code exprès pour toi pour ton problème de 3 chiffres parmi 9
dis- moi si cela est ok pour toi

GRENIER Alain[8D]
0
anselmejour Messages postés 28 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 9 octobre 2006
24 sept. 2006 à 15:32
merci Vercomax je teste de suite

Alain ou as tu mis le code ?

merci a vous 2

j'etais sur un truc du genre :

 Private Sub TroisDeNeuf()
            Dim neufa As New StringCollection
            Dim neufb As New StringCollection
            Dim neufc As New StringCollection
            For a As Integer = 1 To 9
                neufa.Add(a.tostring)
            Next
            neufb = neufa
            neufc = neufa
            Dim sb As New StringBuilder
            Dim i As Integer = 0
            Dim _a, _b, _c As Integer
            For a As Integer = 0 To 8
                For b As Integer = 0 To 8
                    For c As Integer = 0 To 8
                        If a <> b AndAlso a <> c AndAlso b <> c Then
                            sb.AppendFormat("{0} {1} {2}
", neufa(a), neufa(b), neufa(c))
                            i += 1
                        End If
                    Next
                Next
                'ici il faudrait supprimer a chaque boucle le i=+1
            Next
            Me.AddLiteral(i.ToString & "<hr />")
            Me.AddLiteral(sb.ToString)
        End Sub
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 sept. 2006 à 15:32
pose une listbox nommée Liste, et 2 boutons

voici ci-dessous le code de Galain (désolé mais si peu de code, j'ai désactivé la source)

Private Sub Command1_Click()
    chaine$ = "012"
    Do
        car1$ = Chr$(Asc(Left$(chaine$, 1) + 1))
        car2$ = Chr$(Asc(Mid$(chaine$, 2, 1) + 1))
        car3$ = Chr$(Asc(Right$(chaine$, 1) + 1))
        chaine$ = car1$ & car2$ & car3$
        If car1$ = "7" Then
            Liste.AddItem chaine$
            Exit Do
        End If
        temp$ = chaine$
        For i% = Val(Right$(chaine$, 1)) To 9
            chaine$ = Left$(chaine$, 2) & LTrim$(i%)
            Liste.AddItem chaine$
        Next i%
        chaine$ = temp$
    Loop
End Sub

Private Sub Command2_Click()
    Liste.Clear
End Sub

Private Sub Form_Load()
    Command1.Caption = "Lancer la
recherche"
    Command2.Caption = "Effacer la
liste"
    Liste.Clear
End Sub

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
Profil bloqué
24 sept. 2006 à 15:33
Pour anselmejour
Il faut attendre que le projet soit disponible dans les nouveaux codes
Cela se fait avec avec un petit temps de retard par rapport au dépot de la source

GRENIER Alain[8D]
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
24 sept. 2006 à 15:36
Salut, je dirais plutôt :

Dim result As String
  For a = 1 To 7
   For b = a + 1 To 8
    For c = b + 1 To 9
     result = a & b & c
    Next a
   Next b
  Next c
0
anselmejour Messages postés 28 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 9 octobre 2006
24 sept. 2006 à 15:36
Vercomax dans ton code tu trouves 1 9 9 , 2 2 3
il ne faut pas de doublons
0
Profil bloqué
24 sept. 2006 à 15:37
Pour PCPT
tu as bien fait de désactiver la source : c'est vrai que pour si peu cela n'en valait pas la peine
Le principal est que notre ami ait le bout de code
Merci et a+

GRENIER Alain[8D]
0
anselmejour Messages postés 28 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 9 octobre 2006
24 sept. 2006 à 15:41
Dolphin le resultat semble correct

il me faut juste maintenant l'adapter a un tableau, car bien sur ce ne sont pas  des chiffres de 1 a 9 mais 9 elements de tableau

merci bcp

Alain je n'ai pas trop idee  comment trouver la source de ton script , cest pas possible de la poster au plus simple cest a dire ici ?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 sept. 2006 à 15:42
je ne doutais pas de ta compréhension.

anselmejour -> si la réponse que j'ai copié précédemment te convient, pense à valider une des réponses de Galain.

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
24 sept. 2006 à 15:44
BRAVO DOLPHIN !
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 sept. 2006 à 15:44
anselmejour
-> tu aurais déjà eu ta réponses en lisant tous les posts...

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
anselmejour Messages postés 28 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 9 octobre 2006
24 sept. 2006 à 15:44
merci pour lre code mais quel est ce langage ? en vbnet ca donne quoi ?





chaine
$ = "012"
    Do
        car1$ = Chr$(Asc(Left$(chaine$, 1) + 1))
        car2$ = Chr$(Asc(Mid$(chaine$, 2, 1) + 1))
        car3$ = Chr$(Asc(Right$(chaine$, 1) + 1))
        chaine$ = car1$ & car2$ & car3$
        If car1$ = "7" Then
            Liste.AddItem chaine$
            Exit Do
        End If
        temp$ = chaine$
        For i% = Val(Right$(chaine$, 1)) To 9
            chaine$ = Left$(chaine$, 2) & LTrim$(i%)
            Liste.AddItem chaine$
        Next i%
        chaine$ = temp$
    Loop
0
Rejoignez-nous