Po pierwsze, ta odpowiedź jest raczej tok myślenia niż rozwiązanie concete.
OK, więc masz listę 3 przedmiotów (A1, A2, A3), gdzie chcesz, aby A1 znajdowało się gdzieś na pierwszej 1/3 listy celów, A2 w drugiej 1/3 celu lista i A3 w trzeciej 1/3. Tak samo chcesz, aby B1 był w pierwszej 1/2, itd ...
Przypisujesz swoją listę 10 jako tablicę, a następnie zaczynasz od listy zawierającej najwięcej elementów, w tym przypadku C. Oblicz miejsce gdzie C1 powinien spaść (1.5) Upuść C1 w najbliższym miejscu (w tym przypadku 1 lub 2), a następnie obliczyć, gdzie powinna spaść C2 (3.5) i kontynuować proces, dopóki nie będzie już więcej Cs.
Następnie przejdź do listy z drugą do największej liczby pozycji. W tym przypadku A. Oblicz, gdzie A1 idzie (1,66), więc spróbuj najpierw 2. Jeśli już umieściłeś tam C1, spróbuj 1. Zrób to samo dla A2 (4.66) i A3 (7.66). Na koniec tworzymy listę B. B1 powinna wynosić 2,5, więc spróbuj 2 lub 3. Jeśli obie są zajęte, spróbuj 1 i 4 i idź dalej, aż znajdziesz puste miejsce. Zrób to samo dla B2.
Będziesz skończyć z czymś takim, jeśli wybrać niższy numer:
C1 A1 A2 C2 C3 C4 A3 B1 B2 C5
czy to jeśli wybierzesz numer górna:
A1 C1 B1 C2 A3 C3 A3 C4 B2 C5
Wydaje się, że działa to całkiem dobrze na liście próbek, ale nie wiem, jak dobrze będzie skalować się do wielu list z wieloma pozycjami. Spróbuj i daj mi znać, jak to działa.
shoulda mam stopień CS :-) –
Wydaje mi się, że don” Po prostu chcesz je łączyć, chcesz, aby były ze sobą połączone równo jak zamek błyskawiczny lub samochody grzecznie łączące się na autostradzie. Mam rację? – sblundy
"samochody grzecznie łączące się na autostradzie" - zgubiłem się ... ??;) – GalacticCowboy