У меня есть символ [26] буквы аза и через вложенные для заявлений я выпускающий список последовательностей, таких как:Расчет этапа N-й перестановки?
aaa, aaz... aba, abb, abz, ... zzy, zzz.
В настоящее время программное обеспечение написано, чтобы создать список всех возможных значений из aaa-zzz, а затем поддерживает индекс и проходит через каждый из них, выполняя операцию над ними.
Этот список, очевидно, большой, он не смехотворно большой, но он дошел до того, что объем памяти слишком велик (есть и другие области, на которые смотрят, но это тот, который у меня есть).
Я пытаюсь создать формулу, в которой я могу сохранить индекс, но удаляю список последовательностей и вычисляю текущую последовательность на основе текущего индекса (так как время между операциями между последовательностями длинное).
Например:
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
}
Я попытался разработки небольшой пример с использованием подмножества (ABC) и пытается индексировать в этом с помощью деления по модулю, но у меня возникают проблемы, думая, сегодня и я озадачен.
Я не прошу ответа, просто любая помощь. Может быть, удар в правильном направлении?
char [25] недостаточно, чтобы провести a..z. Возможно, вы захотите проверить переполнение буфера или что-то еще. – recursive
Что именно вы пытаетесь достичь? – second
@рекурсивный: спасибо, опечатка. –