que tienen un char [26] de las letras az y anidados a través de las declaraciones que estoy produciendo una lista de secuencias como:¿Calcular el paso de permutación enésimo?
aaa, aaz... aba, abb, abz, ... zzy, zzz.
Actualmente, el software está escrito para generar la lista de todos los valores posibles de aaa-zzz y luego mantiene un índice, y pasa por cada uno de ellos realizando una operación sobre ellos.
La lista es obviamente grande, no es ridículamente grande, pero se ha llegado al punto en que la huella de memoria es demasiado grande (también hay otras áreas que se miran, pero esta es una que tengo).
Estoy tratando de producir una fórmula donde pueda mantener el índice, pero elimine la lista de secuencias y calcule la secuencia actual en función del índice actual (ya que el tiempo entre operaciones es largo).
Ej:
char[] characters = {a, b, c... z};
int currentIndex = 29; // abd
public string CurrentSequence(int currentIndex)
{
int ndx1 = getIndex1(currentIndex); // = 0
int ndx2 = getIndex2(currentIndex); // = 1
int ndx3 = getIndex3(currentIndex); // = 3
return string.Format(
"{0}{1}{2}",
characters[ndx1],
characters[ndx2],
characters[ndx3]); // abd
}
He intentado elaborar un pequeño ejemplo usando un subconjunto (abc) y tratando de índice en que el uso de la división de módulo, pero estoy teniendo problemas para pensar hoy y estoy perplejo.
No estoy pidiendo una respuesta, cualquier tipo de ayuda. Tal vez una patada en la dirección correcta?
char [25] no es suficiente para contener un ... z. Es posible que desee comprobar desbordamientos de búfer o algo así. – recursive
¿qué estás tratando de lograr exactamente? – second
@recursive: gracias, error tipográfico. –