Combinaisons de nombres

hhhp2004 Messages postés 173 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 13 octobre 2007 - 6 déc. 2003 à 17:55
Vb Lover Messages postés 221 Date d'inscription vendredi 30 novembre 2001 Statut Membre Dernière intervention 13 février 2010 - 28 févr. 2005 à 16:26
hhhp2004

je suis a la recherche d'un code qui me permettrai de faire de combinaisons de nombres.

Exemple , on a 10 numeos : 1, 2, 3, 4 ...10. La je vais dire a lordinateur que je veux quil prenne 2 numeros par combinaison (ex. 1,2 ; 1,3 ; 1,4 ...... 10,10) en tout il y a 45 possibilités .... mais comment je fais pour que lordinateur m'affiche ces possibilités ?

merci

8 réponses

aserf Messages postés 114 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 1 juillet 2011
6 déc. 2003 à 18:16
bhein a par un petit algo, je vois pas ....

peut etre que je n'es pa tous compris, mais
2 boucle for ne resoudrai pas le probleme ?

Dim i as integer, j as Integer
Dim lCol1 as new Collection

for i = 1 to lcol1.count

for j = 1 to lco1.count

if j <> i then
debug.print i & "," & j
endif
next
next

A++
Sebastien

Je cherche des personnes pour tester mon addin
www.inosys.net/genclass/vb6/addingenclass.zip
0
hhhp2004 Messages postés 173 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 13 octobre 2007
6 déc. 2003 à 18:35
hhhp2004

merci davoir repondu.....

je ne suis pas sur de comprendre ton code , pourrais tu me l'expliquer S.P.V ?
0
aserf Messages postés 114 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 1 juillet 2011
6 déc. 2003 à 18:52
bhein heu dit moi ce que tu comprend pas,

si tu veux voir un exmple de fonctionnement tu rajoute juste des

lcol1.add 1
lcol1.add 12
lcol1.add 6
lcol1.add 4
lcol1.add 9
lcol1.add 15

et a par sa ensuite tu regarde le resultat

a++
Sebastien
0
hhhp2004 Messages postés 173 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 13 octobre 2007
6 déc. 2003 à 19:57
hhhp2004

je ne comprends pas comment ca fonctionne ....

voila ce que jai fiat avec ton code :

Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim lCol1 As New Collection

For i = 1 To lCol1.Count

For j = 1 To lco1.Count

If j <> i Then
Debug.Print i & "," & j
End If
Next
Next
Text1.Text = j
End Sub

et jai mis aussi sur la feuille un text1.text pour voir les combinaisons mais ca marche pas .....
0

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

Posez votre question
Vb Lover Messages postés 221 Date d'inscription vendredi 30 novembre 2001 Statut Membre Dernière intervention 13 février 2010 5
8 déc. 2003 à 18:22
Si tu veux 45 possibilités, alors tu veux cet algorithme :

dim i as integer, j as integer
dim N as integer

N = 10
for i=1 to N-1
for j=i+1 to N
me.print cstr(i) & "," & cstr(j)
next
next

mais tu n'auras pas la combinaison 10,10 ! Ta description n'est pas claire.
Si tu veux toutes les combinaisons possibles, alors les 2 boucles vont de 1 à N -> 100 combinaisons
Si tu ne veux pas 2 fois le même chiffre, alors il faut ajouter la condition "if i<>j" -> 90 combinaisons
...

VB Lover
0
jcrashmen Messages postés 14 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 27 février 2005
27 févr. 2005 à 01:35
Salut Vb lover ...hummm je comprend mieux la logique seulement
dans la cas ou tu parts par ex de 15 chiffres et que tu veux toutes les
combinaisons de 3 chiffres sans qu'elles se répètent ou qu'ils y ait de
duplet dans la combinaison , comment peux tu faire ?

est ce que tu as n! / (n-p)!

Avec quelques explications ca m'aiderait bien ...

Thanks
0
hhhp2004 Messages postés 173 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 13 octobre 2007
27 févr. 2005 à 18:17
hhhp2004

salut,

jcrashmen, je ne comprends pas trop ce que tu veux dire ....
mais voici un petit algorithme qui calcule toute les combinaisons possibles (suivant la regle avec le factorial) des nombre de 1 jusqua 15

n=15
for a=1 to n
for b=a+1 to n
for c=b+1 to n
text1.text = text1.text & vbcrlf & a & "," & b & "," & c
next
next
next

si ca marche pas ou cest pas ca que tu veux dis le moi ...
0
Vb Lover Messages postés 221 Date d'inscription vendredi 30 novembre 2001 Statut Membre Dernière intervention 13 février 2010 5
28 févr. 2005 à 16:26
Hello,



je crois que j'ai saisi ce que tu veux faire. Le code de hhhp2004 est
très bon, mais le problème c'est si tu veux par exemple grouper tes
nombres par 5, alors il faut imbriquer 5 boucles "for" l'une dans
l'autre. Un moyen de faire ça de manière générale, c'est d'utiliser un
algorithme récursif:



-----------------------------------------------------------------------------

Public Sub Combinatoire(ByVal Prefixe As String, ByVal Min As Integer, _

ByVal Max As Integer, ByVal N As Integer)

Dim i As Integer

Dim Resultat As String



For i = Min To Max - N + 1

If Prefixe "" Then Resultat "" Else Resultat = ";"

Resultat = Prefixe & Resultat & CStr(i)

If N > 1 Then

Combinatoire Resultat, i + 1, Max, N - 1

Else

frmMain.Print Resultat

End If

Next



End Sub

-----------------------------------------------------------------------------



Il suffit d'appeler, dans ton cas, Combinatoire "",1,15,3 pour avoir le résultat recherché.



les maths, c'est tellement si beau!
0
Rejoignez-nous