Wpis z mikrobloga

Będzie #rozdajo #gry i przy okazji związane z jego formą pytanie z #programowanie / #algorytmy (na końcu).

Po przejrzeniu zawartości paru kupionych #humblebundle mam do rozdania kilkanaście kluczy do gier (byłoby więcej - ale część pozycji niepotrzebnie przypisałem do kont na #steam i #origin - i chyba nie da się tego cofnąć, nawet jeśli nigdy nie pobrałem danej gry - ale jeśli się mylę, to dajcie znać).

Lista gier:
1. Hitman: Absolution (Steam)
2. Tomb Raider GOTY (Steam)
3. Just Cause (Steam)
4. The Last Remnant (Steam) (2 szt.)
5. Daikatana (Steam)
6. Yosumin (Steam)
7. Front Mission Evolved (Steam)
8. Gyromancer (Steam)
9. Final Fantasy XIV: A Realm Reborn (Square Enix)
10. Battlestations: Midway (Steam)
11. The Sims 3 Key (Origin)
12. The Sims 3 Date Night Key (Origin)¹
13. The Sims 3 High End Loft Stuff Key (Origin)¹
14. The Sims 3 Late Night Key (Origin)¹
15. Nosgoth Veteran Pack (Steam) - nie znam się, ale chyba już nie ma tej gry - więc tylko dla tych co wyrażą zainteresowanie.

¹ - Pozycje 12-14 to chyba dodatki do Sims 3, więc dam je zwycięzcy w pakiecie z grą (11) - że chyba znaleźliby się chętni na same dodatki - to wtedy oni mają (przynajmniej teoretycznie) pierwszeństwo.

Zasady trochę nietypowe - bo udział w sumie mogą brać wszyscy, nawet zielonki (byle zarejestrowane przed publikacją tego wpisu). Samo plusowanie nie wystarczy - trzeba będzie jeszcze napisać w komentarzu, które pozycje interesują - w kolejności od najbardziej pożądanej do najmniej - w formacie: [[gra-nr-1, gra-nr-2, ...]].
Czyli dla przykładu - jeśli najbardziej pragniesz Tomb Raidera, ewentualnie zadowolisz się Hitmanem lub w ostateczności Daikataną a reszta cię w ogóle nie interesuje, to piszesz: [[2, 1, 5]] (razem z nawiasami). Lista preferencji może równie dobrze zawierać jedną pozycję (np.: [[3]]), jak i wszystkie (choć zważywszy na Simsy i DLC będzie to trochę bez sensu). Lista może być podana w dowolnej części odpowiedzi (na początku, końcu, w środku, może być sama - byle wg podanego formatu).
Jedna osoba - jedna lista i proszę nie cytować w odpowiedziach innych list (no że chyba cytowana zgadza się w 100% z własnym wyborem).

Losowanie odbędzie się, gdy znajdą się chętni na wszystkie pozycje, ale raczej nie wcześniej niż w środę. A jak nie będzie chętnych na wszystkie pozycje - to powiedzmy, że najpóźniej rozlosuję w następną niedzielę.

------------------------------

No i moje pytanie odnośnie #programowanie / #algorytmy
Z jakich algorytmów ewentualnie mogę skorzystać do w miarę optymalnego rozdziału zasobów (gier) wśród wylosowanych użytkowników z uwzględnieniem ich list preferencji (nie zawierających wszystkich pozycji)? Mam parę pomysłów, ale nie chcę niczego sugerować.

Przydatne będą zarówno nazwy istniejących algorytmów jak i opisy słowne tłumaczące po kolei sposób postępowania oraz gotowe implementacje, z wykorzystaniem jakiegoś nieegzotycznego języka czy pseudokodu. Z góry dzięki za rady.
  • 124
@Orlin: [[11, 12, 13, 14]]

Od strony algorytmicznej: szukałbym inspiracji w problemie plecakowym i w algorytmach kolejkowania zadań (na studiach robi się to na przykładzie przydzielania czasu procesora). Generalnie możesz podejść albo zachłannie, albo dynamicznie do takich problemów, a w tym konkretnym przypadku, to najrozsądniej napisać najzwyklejszy brute force, bo zestaw danych jest malutki, jak na współczesne procesory.