denys.astanin's blog

By denys.astanin, 12 years ago, In Russian

Есть ряд чисел от 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 Расстояние между одинаковыми числами должно быть максимально возможным.

  • Vote: I like it
  • 0
  • Vote: I do not like it