OVH Cloud OVH Cloud

Cherche 1 bon en algo + math ???

17 réponses
Avatar
X
Bonjour,

J'ai un problème, je dois comparer 20 données avec "toutes" les
possiblité possibles, qui pourrait à l'aide de boucles me faire un algo ???

Sub Form_Load()
Dim nb(20)
Dim i As Long
'
i = 1
nb(i) = 29.99: i = i + 1
nb(i) = 228.97: i = i + 1
nb(i) = 200: i = i + 1
nb(i) = 116.87: i = i + 1
nb(i) = 7.3: i = i + 1
nb(i) = 500: i = i + 1
nb(i) = 92: i = i + 1
nb(i) = 1130.55: i = i + 1
nb(i) = 11.2: i = i + 1
nb(i) = 172.33: i = i + 1
nb(i) = 18.02: i = i + 1
nb(i) = 57.6: i = i + 1
nb(i) = 24.8: i = i + 1
nb(i) = 24.8: i = i + 1
nb(i) = 3.38: i = i + 1
nb(i) = 15.9: i = i + 1
nb(i) = 14.4: i = i + 1
nb(i) = 66.98: i = i + 1
nb(i) = 112.5: i = i + 1
nb(i) = 7.3
End Sub

Merci beaucoup, au revoir et à bientôt :o)
------
Site
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------

10 réponses

1 2
Avatar
Barsalou
Bonjour

Que veux-tu dire par comparer avec toutes les possibilités ?
Faut-il pour chaque couple de données savoir si la première est inférieure,
égale, ou supérieure à la seconde ?
Ou faut-il simplement trier les données ?
Avatar
Philippe HALET
Bonsoir,

Que désires-tu faire? Une analyse statistique? Courbe de Gauss par exemple?
Une régression?

Si tu désires plus d'info, contacte-moi!

Bien à toi,

Philippe


"X" <x> wrote in message news:
Bonjour,

J'ai un problème, je dois comparer 20 données avec "toutes" les
possiblité possibles, qui pourrait à l'aide de boucles me faire un algo
???

Sub Form_Load()
Dim nb(20)
Dim i As Long
'
i = 1
nb(i) = 29.99: i = i + 1
nb(i) = 228.97: i = i + 1
nb(i) = 200: i = i + 1
nb(i) = 116.87: i = i + 1
nb(i) = 7.3: i = i + 1
nb(i) = 500: i = i + 1
nb(i) = 92: i = i + 1
nb(i) = 1130.55: i = i + 1
nb(i) = 11.2: i = i + 1
nb(i) = 172.33: i = i + 1
nb(i) = 18.02: i = i + 1
nb(i) = 57.6: i = i + 1
nb(i) = 24.8: i = i + 1
nb(i) = 24.8: i = i + 1
nb(i) = 3.38: i = i + 1
nb(i) = 15.9: i = i + 1
nb(i) = 14.4: i = i + 1
nb(i) = 66.98: i = i + 1
nb(i) = 112.5: i = i + 1
nb(i) = 7.3
End Sub

Merci beaucoup, au revoir et à bientôt :o)
------
Site
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------







Avatar
X
Bonsoir, merci de ta réponse, plus que ça, et moins que ça, lol, je
cherche juste tous les montants "additionnables" possibles avec toutes les
combinaisons possibles, donc au moins 2 par 2, par exemple:
(i)
1+2
1+3
1+2+3...
2+3+4....+20
3+4+...+20...

Un peu comme au loto, ou tu vas calculer toutes les combinaisons à 6
chiffres sur 49 numéros...
Ben là je voudrais calculer toutes les additions possible (d'au moins 2
valeurs donc, mais plus aussi, jusqu'aux 20 valeurs). Comme c'est une
addition, le sens importe peu, je veux dire que si on a fait (i) 1+2, on ne
fera pas 2+1, c'est réciproque, soit 2+1=3, etc...
Et encore, tous les nombres entre 2 en addition à 2 valeurs, puis à 3, puis
jusqu'à 20 valeurs ensemble... (des boucles)...

Le but, je voudrait savoir s'il est possible avec toutes les combinaisons
d'additions d'obtenir une ou plusieurs valeur correspondant à X, mais ça je
le ferai moi-même...

Ou encore, il y a 20 valeurs, en les additionnant entre elles de toutes les
façon possibles, trouver si X correspond à au moins une de ces additions...

Sais-tu ???
----------------


"Barsalou" a écrit dans le message de
news: %
Bonjour

Que veux-tu dire par comparer avec toutes les possibilités ?
Faut-il pour chaque couple de données savoir si la première est
inférieure, égale, ou supérieure à la seconde ?
Ou faut-il simplement trier les données ?


Avatar
X
Bonsoir, merci de ta réponse, je cherche juste tous les montants
"additionnables" possibles avec toutes les combinaisons possibles, donc au
moins 2 par 2, par exemple:
(i)
1+2
1+3
1+2+3...
2+3+4....+20
3+4+...+20...

Un peu comme au loto, ou tu vas calculer toutes les combinaisons à 6
chiffres sur 49 numéros...
Ben là je voudrais calculer toutes les additions possible (d'au moins 2
valeurs donc, mais plus aussi, jusqu'aux 20 valeurs). Comme c'est une
addition, le sens importe peu, je veux dire que si on a fait (i) 1+2, on ne
fera pas 2+1, c'est réciproque, soit 2+1=3, etc...
Et encore, tous les nombres entre 2 en addition à 2 valeurs, puis à 3, puis
jusqu'à 20 valeurs ensemble... (des boucles)...

Le but, je voudrait savoir s'il est possible avec toutes les combinaisons
d'additions d'obtenir une ou plusieurs valeur correspondant à X, mais ça je
le ferai moi-même...

Ou encore, il y a 20 valeurs, en les additionnant entre elles de toutes les
façon possibles, trouver si X correspond à au moins une de ces additions...

Sais-tu ???
----------------



"Philippe HALET" a écrit dans le message de news:
43cfe3af$0$3813$
Bonsoir,

Que désires-tu faire? Une analyse statistique? Courbe de Gauss par
exemple? Une régression?

Si tu désires plus d'info, contacte-moi!

Bien à toi,

Philippe


"X" <x> wrote in message news:
Bonjour,

J'ai un problème, je dois comparer 20 données avec "toutes" les
possiblité possibles, qui pourrait à l'aide de boucles me faire un algo
???

Sub Form_Load()
Dim nb(20)
Dim i As Long
'
i = 1
nb(i) = 29.99: i = i + 1
nb(i) = 228.97: i = i + 1
nb(i) = 200: i = i + 1
nb(i) = 116.87: i = i + 1
nb(i) = 7.3: i = i + 1
nb(i) = 500: i = i + 1
nb(i) = 92: i = i + 1
nb(i) = 1130.55: i = i + 1
nb(i) = 11.2: i = i + 1
nb(i) = 172.33: i = i + 1
nb(i) = 18.02: i = i + 1
nb(i) = 57.6: i = i + 1
nb(i) = 24.8: i = i + 1
nb(i) = 24.8: i = i + 1
nb(i) = 3.38: i = i + 1
nb(i) = 15.9: i = i + 1
nb(i) = 14.4: i = i + 1
nb(i) = 66.98: i = i + 1
nb(i) = 112.5: i = i + 1
nb(i) = 7.3
End Sub

Merci beaucoup, au revoir et à bientôt :o)
------
Site
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------











Avatar
Clive Lumb
X wrote:
Bonsoir, merci de ta réponse, plus que ça, et moins que ça,
lol, je cherche juste tous les montants "additionnables" possibles
avec toutes les combinaisons possibles, donc au moins 2 par 2, par
exemple: (i)
1+2
1+3
1+2+3...
2+3+4....+20
3+4+...+20...

Un peu comme au loto, ou tu vas calculer toutes les combinaisons à 6
chiffres sur 49 numéros...
Ben là je voudrais calculer toutes les additions possible (d'au moins
2 valeurs donc, mais plus aussi, jusqu'aux 20 valeurs). Comme c'est
une addition, le sens importe peu, je veux dire que si on a fait (i)
1+2, on ne fera pas 2+1, c'est réciproque, soit 2+1=3, etc...
Et encore, tous les nombres entre 2 en addition à 2 valeurs, puis à
3, puis jusqu'à 20 valeurs ensemble... (des boucles)...

Le but, je voudrait savoir s'il est possible avec toutes les
combinaisons d'additions d'obtenir une ou plusieurs valeur
correspondant à X, mais ça je le ferai moi-même...

Ou encore, il y a 20 valeurs, en les additionnant entre elles de
toutes les façon possibles, trouver si X correspond à au moins une de
ces additions...

Sais-tu ???
----------------



Si j'ai bien compris ce que tu veux faire, saches quand même que cela fait
1048555 combinaisons possibles.
Cela se décompose comme suit
2/20: 190
3/20: 1140
4/20: 4845
5/20: 15504
6/20: 38760
7/20: 77520
8/20: 125970
9/20: 167960
10/20: 184756
11/20: 167960
12/20: 125970
13/20: 77520
14/20: 38760
15/20: 15504
16/20: 4845
17/20: 1140
18/20: 190
19/20: 20
20/20: 1
Combinaisons total:1048555

Aussi, pour remplir une matrice, la fonction Array est plus simple que ta
méthode
nb = Array(29.99, 228.97, 200, 116.87, 7.3, 500, 92, 1130.55, 11.2, _
172.33, 18.02, 57.6, 24.8, 24.8, 3.38, 15.9, 14.4, 66.98, 112.5, 7.3)
Par contre nb commence à 0 plutôt qu'à 1 (sauf si tu a mis option base sur
1)
Je te conseille de commencer d'utiliser des tableaux commençant à zéro, car
dans vb.net on n'a plus le choix.

Pour calculer les membres des combinaisons, je te dirige vers
http://www.vb-helper.com/howto_m_choose_n.html
Evidemment il faut le faire tourner dans une boucle en faisant varier n de 2
à 20, tu recupères le résultat dans une collection (autant de membres que de
combinaisons, chaque mebre est une chaine des indices de nb() à prendre)

Voilà
Avatar
X
Merci,

Non, Array je ne m'en sers pas, alors je le maîtrise mal, je serai plus
à l'aise avec des boucles (qui commencnt à1), peux-tu me faire la matrice de
ces boucles, l'algo, stp...
Sinon, je ne vais pas stocker le million de possibilité, je vais comparer et
si différent de ce que je cherche, on passe :o)

L'aide de l'hyperlien est en anglais, et moi en français, désolé :o)
Je peux faire le code de début, c'est après que je ne sais pas...

for i = 2 to 20
for j = 1 to 19
if nb(j) + nb(i) = X then goto fin1
next j
next i
fin1:
msgbox nb(1) & bvcrlf & nb(i)
exit sub

MAIS après, ça me dépasse totalement en math ???

Ou alors on fait par tranche de 30.000, ça fait dans les 35 phases, on
balance en list, on tri, on cherche, et on vide si pas trouvé addition = X,
etc... et return on reprend...
-------------


"Clive Lumb" a écrit dans le message
de news:
X wrote:
Bonsoir, merci de ta réponse, plus que ça, et moins que ça,
lol, je cherche juste tous les montants "additionnables" possibles
avec toutes les combinaisons possibles, donc au moins 2 par 2, par
exemple: (i)
1+2
1+3
1+2+3...
2+3+4....+20
3+4+...+20...

Un peu comme au loto, ou tu vas calculer toutes les combinaisons à 6
chiffres sur 49 numéros...
Ben là je voudrais calculer toutes les additions possible (d'au moins
2 valeurs donc, mais plus aussi, jusqu'aux 20 valeurs). Comme c'est
une addition, le sens importe peu, je veux dire que si on a fait (i)
1+2, on ne fera pas 2+1, c'est réciproque, soit 2+1=3, etc...
Et encore, tous les nombres entre 2 en addition à 2 valeurs, puis à
3, puis jusqu'à 20 valeurs ensemble... (des boucles)...

Le but, je voudrait savoir s'il est possible avec toutes les
combinaisons d'additions d'obtenir une ou plusieurs valeur
correspondant à X, mais ça je le ferai moi-même...

Ou encore, il y a 20 valeurs, en les additionnant entre elles de
toutes les façon possibles, trouver si X correspond à au moins une de
ces additions...

Sais-tu ???
----------------



Si j'ai bien compris ce que tu veux faire, saches quand même que cela fait
1048555 combinaisons possibles.
Cela se décompose comme suit
2/20: 190
3/20: 1140
4/20: 4845
5/20: 15504
6/20: 38760
7/20: 77520
8/20: 125970
9/20: 167960
10/20: 184756
11/20: 167960
12/20: 125970
13/20: 77520
14/20: 38760
15/20: 15504
16/20: 4845
17/20: 1140
18/20: 190
19/20: 20
20/20: 1
Combinaisons total:1048555

Aussi, pour remplir une matrice, la fonction Array est plus simple que ta
méthode
nb = Array(29.99, 228.97, 200, 116.87, 7.3, 500, 92, 1130.55, 11.2, _
172.33, 18.02, 57.6, 24.8, 24.8, 3.38, 15.9, 14.4, 66.98, 112.5, 7.3)
Par contre nb commence à 0 plutôt qu'à 1 (sauf si tu a mis option base sur
1)
Je te conseille de commencer d'utiliser des tableaux commençant à zéro,
car
dans vb.net on n'a plus le choix.

Pour calculer les membres des combinaisons, je te dirige vers
http://www.vb-helper.com/howto_m_choose_n.html
Evidemment il faut le faire tourner dans une boucle en faisant varier n de
2
à 20, tu recupères le résultat dans une collection (autant de membres que
de
combinaisons, chaque mebre est une chaine des indices de nb() à prendre)

Voilà




Avatar
Clive Lumb
X wrote:
Merci,

Non, Array je ne m'en sers pas, alors je le maîtrise mal, je
serai plus à l'aise avec des boucles (qui commencnt à1), peux-tu me
faire la matrice de ces boucles, l'algo, stp...
Sinon, je ne vais pas stocker le million de possibilité, je vais
comparer et si différent de ce que je cherche, on passe :o)

L'aide de l'hyperlien est en anglais, et moi en français, désolé :o)
Je peux faire le code de début, c'est après que je ne sais pas...

for i = 2 to 20
for j = 1 to 19
if nb(j) + nb(i) = X then goto fin1
next j
next i
fin1:
msgbox nb(1) & bvcrlf & nb(i)
exit sub

MAIS après, ça me dépasse totalement en math ???

Ou alors on fait par tranche de 30.000, ça fait dans les 35 phases, on
balance en list, on tri, on cherche, et on vide si pas trouvé
addition = X, etc... et return on reprend...
-------------




Je vais regarder ça toute à l'heure.
Avant de m'y lancer - as-tu besoin de savoir la combinaison d'indices que
donne la bonne résultat?
C.A.D.
si nb(1) + nb(3)+ nb(17) )= X alors
Message "J'ai trouver pour les valeurs 1 + 3 +17"

Aussi donnes-moi quelques valeurs de X typique pour tester.
Que faire si on trouve la combinaison gagnante ? Continuer de chercher (car
il pourrait en exister d'autres) ou laisser tomber?

A plus
Clive
Avatar
X
Merci l'ami, absolument, j'ai besoin de connaître avec quoi a été
composé X, ben X a une valeur que je connais, la voici: 486,31

Je peux même te donner les valeur permettant de faire dees additions, déjà
on peut enlever 500 (> à X), les 0 et les blancs ne comptent pas, c'est
parce que j'ai fait une copie d'Excel, et il a dû me coller ça en image (il
doit je crois y avoir (- le "500") 18 variable décimales...

29,99
228,97
200,00
116,87

7,30
500,00
92,00
0,00
11,20
172,33
18,02
57,60
24,80

24,80
3,38

15,90
14,40
66,98
112,50
7,30


Pour satisfaire ta curiosité, c'est pour un compte courant, la banque à
soustrait d'une montant de 1000 et quelques, certains éléments, et la seule
façon de les retrouver c'est de faire des additions entre eux, afin de les
comparer à X...

Merci encore, à bientôt. Joe
------------------------------




"Clive Lumb" a écrit dans le message
de news:
X wrote:
Merci,

Non, Array je ne m'en sers pas, alors je le maîtrise mal, je
serai plus à l'aise avec des boucles (qui commencnt à1), peux-tu me
faire la matrice de ces boucles, l'algo, stp...
Sinon, je ne vais pas stocker le million de possibilité, je vais
comparer et si différent de ce que je cherche, on passe :o)

L'aide de l'hyperlien est en anglais, et moi en français, désolé :o)
Je peux faire le code de début, c'est après que je ne sais pas...

for i = 2 to 20
for j = 1 to 19
if nb(j) + nb(i) = X then goto fin1
next j
next i
fin1:
msgbox nb(1) & bvcrlf & nb(i)
exit sub

MAIS après, ça me dépasse totalement en math ???

Ou alors on fait par tranche de 30.000, ça fait dans les 35 phases, on
balance en list, on tri, on cherche, et on vide si pas trouvé
addition = X, etc... et return on reprend...
-------------




Je vais regarder ça toute à l'heure.
Avant de m'y lancer - as-tu besoin de savoir la combinaison d'indices que
donne la bonne résultat?
C.A.D.
si nb(1) + nb(3)+ nb(17) )= X alors
Message "J'ai trouver pour les valeurs 1 + 3 +17"

Aussi donnes-moi quelques valeurs de X typique pour tester.
Que faire si on trouve la combinaison gagnante ? Continuer de chercher
(car
il pourrait en exister d'autres) ou laisser tomber?

A plus
Clive




Avatar
Clive Lumb
Voilà, j'ai déja une réponse - mais je vais continuer parce qu'il peut y en
avoir plusieurs
Indices :3 9 10 11 15 17 18
Montants : 200 11,2 172,33 18,02 3,38 14,4 66,98
Avatar
John Smith
Si je comprend bien tu veux faire se genre d'opération
Tirée d'un livre de statistique 4 lettres Combinaison possible de 3 lettres
A,B,C,D
Combinaison Arrangement
ABC ABC ACB BAC BCA CAB CBA
ABD ABD ADB BAD BDA DAB DBA
ACD ACD ADC CAD CDA DAC DCA
BCD BCD BDC CBD CDB DBC DCB


Toi tu aurais 20 nombre combinaison possible de 2 nombres, 3 nombres,etc...
20 nombres
est-ce que j'ai bien compris?





"X" <x> wrote in message news:
Bonjour,

J'ai un problème, je dois comparer 20 données avec "toutes" les
possiblité possibles, qui pourrait à l'aide de boucles me faire un algo
???

Sub Form_Load()
Dim nb(20)
Dim i As Long
'
i = 1
nb(i) = 29.99: i = i + 1
nb(i) = 228.97: i = i + 1
nb(i) = 200: i = i + 1
nb(i) = 116.87: i = i + 1
nb(i) = 7.3: i = i + 1
nb(i) = 500: i = i + 1
nb(i) = 92: i = i + 1
nb(i) = 1130.55: i = i + 1
nb(i) = 11.2: i = i + 1
nb(i) = 172.33: i = i + 1
nb(i) = 18.02: i = i + 1
nb(i) = 57.6: i = i + 1
nb(i) = 24.8: i = i + 1
nb(i) = 24.8: i = i + 1
nb(i) = 3.38: i = i + 1
nb(i) = 15.9: i = i + 1
nb(i) = 14.4: i = i + 1
nb(i) = 66.98: i = i + 1
nb(i) = 112.5: i = i + 1
nb(i) = 7.3
End Sub

Merci beaucoup, au revoir et à bientôt :o)
------
Site
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------







1 2