Я написал алгоритм, который итеративно решает проблему. Первая итерация состоит из 6 шагов, а все последующие итерации состоят из 5 шагов (первый шаг пропускается).
То, что я хочу вычислить, является текущим (локальным) шагом в итерации из текущего глобального шага.
Например, если всего 41 шаг, то есть 8 итераций:
индексы от 1 до 6 относятся к 1-й итерации
индексы от 7 до 11 относятся ко второй итерации
...
Для расчета текущей итерации я написал следующий код:
if(currentStep <= 6)
iteration = 1;
else
iteration = floor((currentStep - 7)/5) + 2;
end
Проблема остается в расчете локальных шагов.
на первой итерации выполняются следующие шаги: 1, 2, 3, 4, 5, 6
во всех следующих итерациях выполняются шаги 2, 3, 4, 5, 6
Итак, что нужно сделать, это преобразовать массив глобальных шагов
[1 2 3 4 5 6 7 8 9 10 11 12 13 ... 41]
в массив локальных шагов
[1 2 3 4 5 6 2 3 4 5 6 2 3 ... 6]
.
Буду признателен, если кто-нибудь поможет найти решение данной проблемы.
Спасибо!