Есть ряд чисел от 1 до N. Каждое число может повторяться произвольное число раз. Необходимо преобразовать последовательность таким образом, чтобы одинаковые числа в ней располагались на одинаковом расстоянии друг от друга с минимальной погрешностью.
Пример:
Последовательность: 1 1 1 1 2 2 2 2 2 3 3 3 4
Результат: 2 1 3 2 1 3 2 1 3 2 1 4 2
Очевидно жадный алгоритм не подходит. Жадный с эвристиками, похоже, тоже не даст идеальных результатов.
Существуют ли какие-то уже разработанные подходы к реализации подобного рода "равномерных рассеиваний" ряда чисел?
UPD Расстояние между одинаковыми числами должно быть максимально возможным.