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.