Поиск наименее используемой перестановки

Мне необходимо распределить набор данных равномерно по времени на основе исторических данных таким образом, чтобы каждая цифра с течением времени появлялась равное (или близкое к равному) число раз в каждой позиции. Проблема заключается в том, что, учитывая список ордеров, использовавшихся в прошлом, которые выглядят так (но могут иметь любое количество элементов):

1,2,5,3,4
4,1,5,2,3
1,3,5,2,4
4,1,2,3,5
2,4,1,3,5
5,1,4,3,2
1,5,3,2,4
5,1,3,2,4
3,2,5,4,1
4,3,1,5,2

как я могу найти порядок следования значений, который является наименее используемым и приведет к "более сбалансированному" набору ордеров. Очевидный ответ заключается в том, что я мог бы сгруппировать и посчитать их и выбрать наименее используемую, но проблема в том, что наименее используемая перестановка, возможно, никогда не использовалась, например, здесь порядок следования "1,2,3,4,5" является кандидатом на наименее используемую, потому что она вообще не отображается.

Простой ответ, похоже, состоит в том, чтобы определить, какая позиция "1" появляется наименее часто, и установить эту позицию на "1" и т.д. для каждой цифры. Подозреваю, что это работает, но мне кажется, что есть более элегантное решение, которое я не рассматривал потенциально с крестообразными соединениями, чтобы включить все возможные комбинации.

какие-нибудь идеи?

6
задан Ani 22 September 2011 в 15:07
поделиться