Mon code a une liste appelée ENTREES, qui contient un nombre dynamique de listes, nous allons les appeler A, B, C, .. N. Ces listes contiennent un nombre dynamique des événementsalgorithme pour les combinaisons dynamiques
Je voudrais aime appeler une fonction avec chaque combinaison d'événements. Pour illustrer par un exemple:
INPUTS: A(0,1,2), B(0,1), C(0,1,2,3)
Je dois appeler ma fonction de nombreuses reprises pour chaque combinaison (le nombre d'entrée est dynamique, dans cet exemple, il est de trois paramètres, mais il peut être plus ou moins)
function(A[0],B[0],C[0])
function(A[0],B[1],C[0])
function(A[0],B[0],C[1])
function(A[0],B[1],C[1])
function(A[0],B[0],C[2])
function(A[0],B[1],C[2])
function(A[0],B[0],C[3])
function(A[0],B[1],C[3])
function(A[1],B[0],C[0])
function(A[1],B[1],C[0])
function(A[1],B[0],C[1])
function(A[1],B[1],C[1])
function(A[1],B[0],C[2])
function(A[1],B[1],C[2])
function(A[1],B[0],C[3])
function(A[1],B[1],C[3])
function(A[2],B[0],C[0])
function(A[2],B[1],C[0])
function(A[2],B[0],C[1])
function(A[2],B[1],C[1])
function(A[2],B[0],C[2])
function(A[2],B[1],C[2])
function(A[2],B[0],C[3])
function(A[2],B[1],C[3])
C'est ce à quoi j'ai pensé jusqu'à présent: Mon approche jusqu'à présent consiste à construire une liste de combinaisons. La combinaison d'élément lui-même est une liste de « index » aux tableaux d'entrée A, B et C. Pour notre exemple:
ma liste iCOMBINATIONS contient les listes iCOMBO suivantes
(0,0,0)
(0,1,0)
(0,0,1)
(0,1,1)
(0,0,2)
(0,1,2)
(0,0,3)
(0,1,3)
(1,0,0)
(1,1,0)
(1,0,1)
(1,1,1)
(1,0,2)
(1,1,2)
(1,0,3)
(1,1,3)
(2,0,0)
(2,1,0)
(2,0,1)
(2,1,1)
(2,0,2)
(2,1,2)
(2,0,3)
(2,1,3)
Alors je faire ceci:
foreach(iCOMBO in iCOMBINATIONS)
{
foreach (P in INPUTS)
{
COMBO.Clear()
foreach (i in iCOMBO)
{
COMBO.Add(P[ iCOMBO[i] ])
}
function(COMBO) --- (instead of passing the events separately)
}
}
Mais je dois trouver un moyen de construire la liste iCOMBINATIONS pour un nombre donné de ENTRÉES et leurs événements. Des idées?
Existe-t-il réellement un meilleur algorithme que celui-ci? tout pseudo code pour m'aider sera super.
C# (ou VB)
Merci Vous
Vous pouvez également lire sur les conventions de capitalisation ... http://msdn.microsoft.com/en-us/library/ ms229043.aspx –
Mis à part les conventions de capitalisation, vous parlez d'un "produit cartésien", comme la prise des coordonnées X et des coordonnées Y, et l'examen de tous les points possibles (X, Y). En commençant par le nom correct du problème devrait vous donner quelques progrès. Voir mes commentaires ci-dessous. – maxwellb