Diskuze: Toky v sítích - přiřazení žáků do místnosti
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Toto jsme už společně řešili před několika měsíci. Popsal jsem Ti postup jak to udělat. Zkusil si to tak udělat? Musíš začít od těch žáků, co mají nejméně volna až po ty co mohou kdykoli. Rovněž musíš začít od těch termínů, na které se hlásí co nejméně žáků. Pokud byť jen jeden termín nebo žáka vynecháš, už to nemusíš sestavit.
To jsem dělal, ale pokaždé jsem našel způsob, jak to udělat, aby moje stávající řešení nefungovalo. Pak je tady problém, že ty časy mohou být kdykoliv - tedy třeba 10:04, nebo 10:17, je to jedno, takže nemůžu úplně mluvit o termínech. Taky když beru od těch, co mají nejméně času, tak snadno mohou třeba vyřadit místa pro více lidí. Nebo kdybych je umístil někam jinam, tak by se všechno vyřešilo a umístěni by byli všichni. Když to opravím, zase to jde rozbít jinde - je tam strašně práce a pořád to nefunguje jak by mělo. To by šel lépe i ten bruteforce, ale to je takové hnusné a pomalé řešení.
Úloha není nejsnazší, ale je řešitelná. To že časy mohou být proměnlivé, je jedno. Po vložení žáka nebo vyplnění termínu musíš aktualizovat všechno. Když nezačneš těmi, kteří mají nejméně času a jejich možné termíny zaplníš těmi, kteří toho času mají více, tak si herní terminologií "prohrál". Úloha může mít ale nemusí mít řešení. Bruteforce by byl opravdu hodně pomalý, musíš optimalizovat. Jak jsem psal minule, zjednoduš si úlohu na pár studentů a stanov časy, se kterými se bude lépe pracovat. A pak postupně zvyšuj náročnost. To hlavní je znalost principu proč zrovna daného žáka popřípadě jakou s jakou místností musím v tu chvíli pracovat.
Zobrazeno 4 zpráv z 4.