Calcolo delle combinazioni dalle categorie

0

Sto provando a calcolare ogni possibile selezione da diverse categorie. 1 scelta deve essere fatta da ogni categoria e le categorie sono sempre nello stesso ordine. Salva una stringa in cui ogni carattere è il numero di quella scelta da quella categoria. Ho risolto questo problema con la ricorsione e funziona bene quando ci sono migliaia di possibilità, ma è troppo lento quando ci sono milioni. Mi piacerebbe cambiarlo in loop, si spera che acceleri. Ecco la mia funzione ricorsiva (C #):

private void GetPartNumberPermutations(IList<int> choices, string partNumber)
{
    for (int i = 0; i < choices[0]; i++)
    {
        if (choices.Count > 1)
            GetPartNumberPermutations(choices.Skip(1).ToList(), partNumber + i.ToString());
        else
        {
            //add partNumber to the list
        }
    }
}

Le scelte sono un elenco del numero di scelte per ogni categoria e potrebbero essere {2, 4, 5, 8, 2, 4}. Ignoriamo il problema quando una delle voci è > 9.

La mia lista finale di partNumbers viene a: 000000
000001
000002
000003
000010
000011
000012
000013
000100
000101
ecc.

    
posta AndyMcKenna 16.03.2014 - 18:44
fonte

0 risposte

Leggi altre domande sui tag