Końskie rozważania – odpowiedź, rozwiązanie i przemyślenia dla K>3

Najmniejszą liczbą wyścigów potrzebnych do wyznaczenia zwycięzcy jest siedem.

W ogólnym przypadku, dla N torów per wyścig (N>4) oraz N^2 koni, minimalna liczba wyścigów potrzebnych do wyłonienia najszybszej trójki wynosi N+2.

Rozwiązanie:

1. Dzielimy 25 koni na grupy po pięć.

2. Puszczamy je w pięciu gonitwach.

3. Zwycięzców każdej z tych pięciu gonitw puszczamy w szóstej gonitwie.

4. Dołączamy zwycięzców szóstej gonitwy do ich oryginalnych pięciu początkowych grup.

5. Numerujemy te grupy według kolejności wygranych w gonitwie 6 (a więc zwycięski koń jest w grupie #1, przegrany w grupie #5 i tak dalej)

6. Eliminujemy grupy #4 i #5 (ponieważ dla każdego konia z tych grup istnieją co najmniej trzy konie od niego szybsze, a więc nie ma on szans na załapanie się do pierwszej trójki)

7. Analogicznie, z grupy #3 eliminujemy wszystkie konie oprócz zwycięzcy (wszystkie cztery były od niego wolniejsze), z grupy #2 eliminujemy trzy ostatnie konie (ten co dobiegł drugi ciągle ma szansę na załapanie się do pierwszej trójki – być może jest szybszy od zwycięzcy grupy #3), a z grupy #1 dwa ostatnie (zarówno drugi jak i trzeci mogą okazać się szybsze od zwycięzców grup #2 lub #3 – pozostałe dwa, nawet jeżeli są szybsze od zwycięzców z #2 lub #3, nadal przegrywają z top 3 z pierwszej grupy a więc odpadają).

8. Z pozostałych sześciu koni (jeden koń z grupy #3, dwa konie z grupy #2 oraz trzy konie z grupy #1) usuwamy zwycięzcę szóstej gonitwy (wiemy na pewno, że jest on najszybszym koniem ze wszystkich dwudziestu pięciu). Pozostałych pięć koni puszczamy w ostatniej, siódmej gonitwie. Dwa pierwsze konie z tej siódmej gonitwy oraz zwycięzca szóstej są najszybszą trójką.

Trochę luźnych rozważań…

W ogólnym przypadku (dla dowolnego N > 4), zawsze na końcu zostaje pięć koni do sprawdzenia.

Zadanie zaczyna się porządnie komplikować jeżeli szukamy czterech lub więcej najszybszych koni. Przypuszczam, że nie ma jakiegoś uniwersalnego algorytmu dla dowolnego top-K koni. Może jednak jest – pachnie mi to trochę trójkątem Paskala…

Weźmy K=4 (a więc szukamy najszybszej czwórki). Wówczas, stosując analogiczne rozumowanie, zostajemy na końcu z dziewiątką koni, z których musimy wyłonić trzy najszybsze. Przy N=5 to trzy dodatkowe gonitwy. Przy N=6, 7, lub 8 potrzeba dwóch gonitw. Przy N>=9 – tylko jednej. Hmm…

Dla K=5 zostaje nam 14 koni do wyłonienia zwycięskiej piątki (a tak naprawdę czwórki, bo najszybszego znamy). Przy N=5 to więcej niż połowa wszystkich koni, a więc algorytm może się okazać nieoptymalny. Przy N=6 potrzeba co najmniej czterech gonitw (a może pięciu? nie wiem) żeby wyłonić cztery najszybsze.

W ogólności, dla top-K pozostaje zawsze \(K \frac{1+K}{2}-1\) koni, spośród których trzeba ustalić (K-1) najszybszych. Aha, N powinno być (chyba?) większe od K żeby algorytm miał sens.

Koń by się uśmiał…

Autor: xpil

Po czterdziestce. Żonaty. Dzieciaty. Komputerowiec. Krwiodawca. Emigrant. Rusofil. Lemofil. Sarkastyczny. Uparty. Mól książkowy. Ateista. Apolityczny. Nie oglądam TV. Uwielbiam matematykę. Walę prosto z mostu. Gram na paru instrumentach. Lubię planszówki. Słucham bluesa, poezji śpiewanej i kapel a'capella. || Kliknij tutaj po więcej szczegółów ||

Dodaj komentarz

Bądź pierwszy!

Powiadom o
avatar
wpDiscuz