laurent180
Messages postés72Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention 2 novembre 2008
-
16 janv. 2006 à 12:26
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 2007
-
16 janv. 2006 à 17:14
Boujour a tous,
j'aimerai crée un prog qui me permettrai de trouver des combinaison a partir de chiffre donné exemple si j'ai 12, 15, 25, 63. je veut tt les combinaison sur 3 ligne donc:
12 15 25
12 15 63
12 25 63
15 25 63
etc...
Je ne cherche pas a avoir a tt prit le code mais si j'ai deja les formule mathématique sa m'arrangerai. le code est aussi le bien venu.
jannoman
Messages postés256Date d'inscriptionjeudi 17 avril 2003StatutMembreDernière intervention20 février 20081 16 janv. 2006 à 13:10
si tu as un tableau t(1 to n) et que tu veux afficher les combianaisons de k nombres du tableau (supposés tous différents, k<=n) :
private sub masub(texte as string, k_encours, m as integer)
dim l as integer
if k_encours = k then
Me.Print texte
else
for l = m +1 to (n - (k - k_encours + 1))
masub (texte & " " t(l)), (k_encours + 1), l
next l
end if
end sub
explication : procédure récursive ; texte correspond à la combinaison que tu es en train de créer, k_encours au nombre d'éléments que tu as déja sélectionné dans ton tableau, et m l'indice à partir duquel il va falloir prendre des éléments dans ton tableau
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 16 janv. 2006 à 17:14
La "formule" matheuse est fort simple... c'est exactement celle qui nous permet de savoir que dans le nombre "999", en décimale, il y a "1000" nombres différents.
Autrement dit, il faut considérer tes nombres comme des chiffres. Autrement dit, comme des unités primaires de comptage. Je ne sais pas si tu sais utiliser l'hexadécimale ou le binaire mais c'est exactement le même principe.
La "formule" est très simple :
Îl faut penser à 23= 8... Autrement dit, avec deux chiffres "0 et 1" et 3 cases on n'a que 8 combinaisons possibles ( pense qu'il faut que ça fasse 8 et pas 9... méthode mémo-technique pour retenir la "formule" afin de ne pas confondre avec 32 qui font 9!!! ) :
Les chiffres (1 et 0) étant la base et le nombre de chiffre étant ce que j'appele les cases.
Donc, la formule est :
Base puissance Cases : BaseCases
Par exemple... Base 10 (décimale... la notre) et Cases 3 (XXX) on a
10^3 = 1'000, tout simplement!
Alors attention car cette "formule" prends en compte les doublons... Autrement dit, tu pourras avoir : chiffre2 chiffre2 chiffre1 !
Je suis personnellement toujours à la recherche de la "formule" me permettant de ne pas prendre en compte ces "doublons" dans les combinaisons...
Enfin, y'a des matheux sur VBFrance qui doivent bien avoir la réponse !!!
Voilà. Mais bon, la solution de Janno doit peut-être être meilleurs! A toi de voir!
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )