Во-первых, этот ответ - скорее ход мыслей, чем конкретное решение.
ОК, у вас есть список из 3 элементов (A1, A2, A3), где вы хотите, чтобы A1 находился где-то в первой 1/3 списка целей, A2 - во второй 1/3 списка целей. и А3 в третьем 1/3. Точно так же вы хотите, чтобы B1 был в первой половине, и т. Д ...
Таким образом, вы выделяете свой список из 10 в виде массива, а затем начинаете со списка, содержащего наибольшее количество элементов, в данном случае C. Вычислите место, где должен упасть C1 (1.5) Удалите C1 в ближайшем месте (в этом случае либо 1, либо 2), затем рассчитайте, где должен упасть C2 (3,5), и продолжайте процесс до тех пор, пока не исчезнет Cs.
Затем перейдите к списку со вторым по величине количеством предметов. В этом случае A. Рассчитайте, куда идет A1 (1.66), поэтому сначала попробуйте 2. Если вы уже положили туда C1, попробуйте 1. Сделайте то же самое для A2 (4.66) и A3 (7.66). Наконец, мы делаем список B. B1 должен пойти на 2,5, поэтому попробуйте 2 или 3. Если оба взяты, попробуйте 1 и 4 и продолжайте двигаться радиально, пока не найдете пустое место. Сделайте то же самое для B2.
Вы получите что-то подобное, если выберете меньшее число:
C1 A1 C2 A2 C3 B1 C4 A3 C5 B2
или это, если вы выберете верхнее число:
A1 C1 B1 C2 A2 C3 A3 C4 B2 C5
Кажется, это хорошо работает для ваших образцов списков, но я не знаю, насколько хорошо он будет масштабироваться до множества списков с большим количеством элементов. Попробуйте и дайте мне знать, как это происходит.