[Déplacé VB6 -> VBA]Remplir un tableau avec tous les cas possibles de variables [Résolu]

mattgobt - 18 août 2012 à 19:31 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 21 août 2012 à 22:19
Bonjour à tous,
j'ai un petit soucis que je n'arrive pas à résoudre.
Imaginons un tableau de dimension L lignes et C colonnes. L et C pouvant variés selon des paramètres qui ne sont pas importants ici.
Chacune des cellules du tableau excel en question peut prendre comme valeur 0 ou 1. Je souhaiterais trouver un algo qui me permette de générer tous les cas possibles de remplissage du tableau.
Par exemple :
pour un tableau à 1 ligne et 2 colonnes le tableau pourrait se remplir de la manière suivante :
0 0
1 0
0 1
1 1
Quelqu'un à une idée de comment écrire le programme pour que mon tableau se remplisse comme ça ???

Merci d'avance
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
3
Merci
Hello,
merci pour les réponses. Bon ok a priori je prends pas le problème du bon bout alors.
Mon tableau fait 260 lignes et 28 colonnes.
Petit élément que j'ai oublié de mentionner, je ne peux avoir qu'un seul 1 sur une même ligne.
Donc au final je n'ai que 28 solutions possibles par ligne. Est-ce que j'ai un moyen de boucler sur mes 28 solutions pour tester leurs valeurs sur les 260 lignes ?
En effet, si je fais ça :
for i = 1 to 260
for j = 1 to 74
...
next j
next i

alors je vais changer la valeur de la première ligne avec les 74 solutions possibles mais les autres lignes seront toutes à 0.
Merci encore à tous.

Merci mattgobt 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de mattgobt
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 18 août 2012 à 20:44
0
Merci
Bonjour,
il est dommage que tu aies ouvert la présente discussion dans la section :

Forum > Visual Basic 6
et non dans celle de ton outil de développement ( Langages dérivés > VBA)
Quoi qu'il en soit : ta question (mille et une fois posée ici) est tout simplement celle de toutes les combinaisons possible de n articles. Leur nombre est n! (factorielle n). Aucun problème pour un nombre assez restreint. Enormes problèmes au delà d'une certaine valeur de n.
Et tout cela : dans quel but ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
0
Merci
Oups désolé je m'étais perdu dans les méandres du forum apparemment.
Alors l'objectif est un peu compliqué à expliquer comme ça. L'idée est des tester toutes les solutions possibles d'affectation d'une population à un groupe pour voir laquelle est optimale selon des critères donnés
Commenter la réponse de mattgobt
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 18 août 2012 à 21:33
0
Merci
Salut

C'est comme une table de verité
si j'ai C colonnes j'ai 2^C possibilitées
ex C = 3
000
001
010
011
100
101
110
111

comme ci que tu comptais en binaire de 0 à 2^C -1 ou 7
en gros
l'algo serait peut etre
la boucle varie de 0 à 2^C -1
pour chaque itération convertir en binaire
Commenter la réponse de cs_ShayW
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 18 août 2012 à 21:37
0
Merci
Cela n'enlève absolument rien à ce que j'ai dit plus haut, notamment en ce qui concerne :
est tout simplement celle de toutes les combinaisons possible de n articles. Leur nombre est n! (factorielle n). Aucun problème pour un nombre assez restreint. Enormes problèmes au delà d'une certaine valeur de n

Comment compterais-tu :
tester toutes les solutions possibles d'affectation d'une population à un groupe pour voir laquelle est optimale selon des critères donnés

sur un nombre extrêmement élevé de combinaisons possibles ?
As-tu par exemple une idée de ce que représenterait 15 ! (factorielle 15) ?
- 1) Tu n'aurais pas assez de lignes sur ta feuille de calcul
- 2) Il faudrait un temps important (pas quelques secondes du tout) pour uniquement déterminer toutes les combinaisons
- 3) il faudrait ensuite (histoire de maso) un temps encore plus long pour faire tes tests sur chaque combinaison
Euh ...
Bonne chance.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
Utilisateur anonyme - 19 août 2012 à 01:39
0
Merci
Bonjour,


Oups désolé je m'étais perdu dans les méandres du forum apparemment.
Alors l'objectif est un peu compliqué à expliquer comme ça. L'idée est des tester toutes les solutions possibles d'affectation d'une population à un groupe pour voir laquelle est optimale selon des critères donnés


Pourquoi réinventer la roue ? Le Solveur peut probablement mouliner ton tableau à ta place.
Commenter la réponse de Utilisateur anonyme
0
Merci
Malheureusement le solveur ne peut pas m'aider j'ai trop de variables
Commenter la réponse de mattgobt
neojava777 - 21 août 2012 à 18:31
0
Merci
Bonjour, je profite de ton problème car je cherche une solution qui me paraissait simple mais qui commence à me donner mal au crane...
Je fais jeu, j'ai 5 critère que l'on peut remplir de 1 à 5 , je propose au joueur 15 points à répartir... j'aimerai connaitre toutes les possibilités de remplissage!Merci à vous
Commenter la réponse de neojava777
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 21 août 2012 à 22:19
0
Merci
Bonjour, neojava777
1) ton problème est totalement différent
2) ouvre ta propre discussion
3) expose ton problème de manière plus claire (ce n'est pas le cas de tobn exposé ici).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.