Formule de combinaison
Fermé
sgtfinx
Messages postés
11
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
31 octobre 2009
-
31 oct. 2009 à 00:27
pacorabanix - 31 oct. 2009 à 01:14
pacorabanix - 31 oct. 2009 à 01:14
A voir également:
- Formule de combinaison
- Formule si et - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Formule excel - Guide
- Formule moyenne excel - Guide
- Excel mise en forme conditionnelle formule - Guide
1 réponse
Je crois que j'ai une idée, même si je n'ai pas envie d'essayer de la coder, ça pourrait être une bonne piste :
D'une part tu dis deux choses différentes concernant le nombre de possibilité. Si tu prends effectivement une valeur de chaque couple, c'est bien 2 puissance N possibilités (N=nombre de couples) qu'il y a. pas N!
A part ça :
Essayons, pour trouver un algorithme, de le faire nous-mêmes, sur une feuille de papier par exemple.
Pour faire simple, on ne va pas prendre 13 couples, car 2^13 possibilités à écrire c'est un peu beaucoup.
prenons 4 couples. il y aura 2^4 donc 16 possibilités à faire. avec (1,2) (1,2) (1,2) (1,2)
Comment s'y prendre ? il ne faut pas écrire les possibilités au bol et deviner celles qui manquent, on va se prendre trop la tête. il faut ranger les possibilités. D'abord, commençons par la plus simple.
on prend les premiers nomrbes à chaque fois pour commencer, c'est le plus simple.
1 1 1 1
ensuite on peut changer le premier
2 1 1 1
Ensuite il n'y a plus rien à changer. Revenons au début et changeons le deuxième
1 2 1 1
Puis changeons le premier aussi, comme avant.
2 2 1 1
Ensuite revenons et début et changeons le troisième ...
1 1 2 1
On peut changer le premier comme avant
2 1 2 1
Ou changer le deuxième avant
1 2 2 1
Et après avoir changé le deuxième, comme quelques ligne plus haut on peut changer le premier, çA donne une autre...
2 2 2 1
Tout ceci fait 8 possibilités car on a laissé le dernier fixé.
et on refait toutes ces possibilités mais avec un 2 en dernier à la place du 1, ce qui en donne 8 autres.
je résume pour mieux voir ce que ça donne :
regarde bien les "motifs" qui apparaissent...
Dans la 1ere colonne, on prend 1 (2 puissance 0)seule fois chaque valeur avant de changer
Dans la 2ème colonne, on prend 2 (2 puissance 1) fois à la suite chaque valeur
Dans la 3ème colonne, on prend 4 (2 puissance 2) fois à la suite chaque valeur
Dans la 4ème colonne, on prend 8 (2 puissance 3) fois à la suite chaque valeur...
donc si on appliquait ce principe, à la Nième colonne on écrirait 2 puissance N-1 à la suite et de manière alternée les différentes valeurs.
En fait, il suffit de faire comme ceci comme avant en dit légèrement différent :
dans la première colonne tu écris chaque valeur 1 ou 2 alternativement, à chaque ligne. Autrement dit tu changes la valeur à écrire toutes les lignes.
dans la deuxième colonne tu écris chaque valeur 1 ou 2 alternativement mais tu ne changes que toutes les deux lignes.
etc...
à la Nème colonne tu écris les valeurs en changeant toutes les 2 puissance N-1 lignes
Et à la fin tu auras un grand tableau à 2 puissance 13 lignes et 13 colonnes où tous les arrangements sont écrits.
Pour écrire ces choses il faut faire une grande boucle :
pour savoir si i est un multiple de qqchose, il faut que i MODULO qqchose donne 0 (le modulo est souvent "%" en prog, je ne sais pas pour VBA)
D'une part tu dis deux choses différentes concernant le nombre de possibilité. Si tu prends effectivement une valeur de chaque couple, c'est bien 2 puissance N possibilités (N=nombre de couples) qu'il y a. pas N!
A part ça :
Essayons, pour trouver un algorithme, de le faire nous-mêmes, sur une feuille de papier par exemple.
Pour faire simple, on ne va pas prendre 13 couples, car 2^13 possibilités à écrire c'est un peu beaucoup.
prenons 4 couples. il y aura 2^4 donc 16 possibilités à faire. avec (1,2) (1,2) (1,2) (1,2)
Comment s'y prendre ? il ne faut pas écrire les possibilités au bol et deviner celles qui manquent, on va se prendre trop la tête. il faut ranger les possibilités. D'abord, commençons par la plus simple.
on prend les premiers nomrbes à chaque fois pour commencer, c'est le plus simple.
1 1 1 1
ensuite on peut changer le premier
2 1 1 1
Ensuite il n'y a plus rien à changer. Revenons au début et changeons le deuxième
1 2 1 1
Puis changeons le premier aussi, comme avant.
2 2 1 1
Ensuite revenons et début et changeons le troisième ...
1 1 2 1
On peut changer le premier comme avant
2 1 2 1
Ou changer le deuxième avant
1 2 2 1
Et après avoir changé le deuxième, comme quelques ligne plus haut on peut changer le premier, çA donne une autre...
2 2 2 1
Tout ceci fait 8 possibilités car on a laissé le dernier fixé.
et on refait toutes ces possibilités mais avec un 2 en dernier à la place du 1, ce qui en donne 8 autres.
je résume pour mieux voir ce que ça donne :
1 1 1 1 2 1 1 1 1 2 1 1 2 2 1 1 1 1 2 1 2 1 2 1 1 2 2 1 2 2 2 1 1 1 1 2 2 1 1 2 1 2 1 2 2 2 1 2 1 1 2 2 2 1 2 2 1 2 2 2 2 2 2 2
regarde bien les "motifs" qui apparaissent...
Dans la 1ere colonne, on prend 1 (2 puissance 0)seule fois chaque valeur avant de changer
Dans la 2ème colonne, on prend 2 (2 puissance 1) fois à la suite chaque valeur
Dans la 3ème colonne, on prend 4 (2 puissance 2) fois à la suite chaque valeur
Dans la 4ème colonne, on prend 8 (2 puissance 3) fois à la suite chaque valeur...
donc si on appliquait ce principe, à la Nième colonne on écrirait 2 puissance N-1 à la suite et de manière alternée les différentes valeurs.
En fait, il suffit de faire comme ceci comme avant en dit légèrement différent :
dans la première colonne tu écris chaque valeur 1 ou 2 alternativement, à chaque ligne. Autrement dit tu changes la valeur à écrire toutes les lignes.
dans la deuxième colonne tu écris chaque valeur 1 ou 2 alternativement mais tu ne changes que toutes les deux lignes.
etc...
à la Nème colonne tu écris les valeurs en changeant toutes les 2 puissance N-1 lignes
Et à la fin tu auras un grand tableau à 2 puissance 13 lignes et 13 colonnes où tous les arrangements sont écrits.
Pour écrire ces choses il faut faire une grande boucle :
pour chaque colonne (numérotée N) valeur à écrire = première valeur de ton couple (1) pour chaque ligne (numérotée i) si i est un multiple de 2puissance(N-1) alors on change la valeur à écrire. on écrit la valeur à écrire dans la case (colonne N, ligne i) fin pour fin pour
pour savoir si i est un multiple de qqchose, il faut que i MODULO qqchose donne 0 (le modulo est souvent "%" en prog, je ne sais pas pour VBA)