Алгоритм генерации последовательности по номеру
Генерировать последовательность по ее порядковому номеру.
Дано:
- шаблон последовательности (например "ABC")
- словарь последовательности (т.е. A="123", B="qw", C="0123456") - все допустимые значения по шаблону
- номер последовательности (т.е. принадлежащий "0".."н", н - максимальный номер(равен числу последовательностей) )
т.е. "1q0" - типичный элемент последовательности.
Суть задачи: сгенерировать последовательность по ее номеру. Т.е. сопоставить номер последовательности.
Из-за того что каждый элемент последовательности имеет свой словарь(необязательно) не могу представить этот алгоритм. Это вообще возможно? хелп!
1q0 - это 0й элемент. хорошо, как тогда выглядит первый?
Это не нулевой элемент. Не столь важно как будет выглядеть нулевой. Важно однозначно идентифицировать элемент по номеру и наоборот.
0-й элемент 1q0
1-й элемент 1q1
и т.д.
тогда код будет выглядеть примерно так:
Код:
int fff=123;//номер элемента последовательности
char ppp[3];//последовательность
char A[3],B[2],C[7];//паттерн последовательности
//Собственно вычисление
ppp[2]=C[fff%7];//7-кол-во элементов в 3-й части последовательности
fff/=7;
ppp[1]=B[fff%2];//2-кол-во элементов во 2-й части последовательности
fff%=2;
ppp[0]=A[fff%3];//3-кол-во элементов в 1-й части последовательности
char ppp[3];//последовательность
char A[3],B[2],C[7];//паттерн последовательности
//Собственно вычисление
ppp[2]=C[fff%7];//7-кол-во элементов в 3-й части последовательности
fff/=7;
ppp[1]=B[fff%2];//2-кол-во элементов во 2-й части последовательности
fff%=2;
ppp[0]=A[fff%3];//3-кол-во элементов в 1-й части последовательности
Ну обратно сам додумаешься. (надеюсь :))