Предполагая, что входные значения в наборе равномерно распределены, я бы рекомендовал использовать следующий подход для определения последовательности.
Перебирайте упорядоченные значения, каждый раз перескакивая на X значений, где X определяется как общее количество значений / Phi. Представьте, что конец набора значений возвращается к началу.
Итак, для набора значений от 1 до 12 у вас будет:
X = 12 / Фи
X = 12 / 1.618 = 7.4
Округлите 7,4 до ближайшего целого числа, поэтому предположим, что X = 7.
Тогда ваша последовательность будет 1, 8, 3, 10, 5, 12, 7, 2, 9, 4, 11, 6.
Чтобы количественно оценить (или оценить), насколько "максимизирована" эта последовательность, вы должны взять сумму следующих вычислений для КАЖДОГО члена в наборе.
Для КАЖДОГО элемента набора вычислите абсолютное значение разницы в «значении» между ним и каждым другим элементом, деленное на это «расстояние» до этого элемента. Например, для члена 8 в приведенной выше последовательности его оценка будет:
8,1 = |8-1| / 1 = 8
+
8,3 = |8-3| / 1 = 5
+
8,10 = |8-10| / 2 = 1
+
8,5 = |8-5| / 3 = 1
+
8,12 = |8-12| / 4 = 1
+
...
Сделайте это для каждого члена набора и возьмите сумму, чтобы получить общий «балл». Чем выше оценка, тем более «развернутой» будет последовательность.
person
bdiloreto
schedule
19.05.2011