Witam.
Mamy robota wzdłuż ściany, na której znajdują się również drzwi. Nie wiadomo czy po prawej czy po lewej stronie. Nasz robot porusza się albo w lewo albo w prawo i musi odnaleźć drzwi wykonując jak najmniejszą liczbę kroków. Mam taki pomysł, aby szedł dwa kroki w lewo, potem trzy w prawo, cztery w lewo etc. jednak nie wiem czy będzie to najkrótsze rozwiązanie? Proszę o pomoc :)
Najprościej, aby jechał najpierw cały czas w lewo do końca, a potem cały czas w prawo do końca (lub vice versa) - wtedy powtórzy się tylko 50% trasy (pesymistycznie), a nie prawie że 100% :P
Tylko że ściana jest nieskończenie długa więc jeśli nie będzie drzwi to będzie szedł wciąż w lewo (ew. prawo)
Tak szczerze mówiąc, jeżeli ściana jest nieskończenie długa to nie ma to sensu.
Nie mogę pojąć po co robić i myśleć nad czymś niespotykanym - do niczego.
Podszedłbym do tego tak:
Zastosowałbym twój algorytm (jazda w $kierunek_początkowy) - potem dobierałbym wagi mnożników do skuteczności.
A na końcu wyszła by mi waga skuteczności dla kierunku początkowego.
Czyli w uproszczeniu (j - jednostka długości), (x>1 - mnożnik typu - powiedzmy float):
- Poruszanie się w Lewo j*x
- Poruszanie się w Prawo (długość_z_pkt_1) * x
- Poruszanie się w Lewo (długość_z_pkt_2) * x
4 ...
Dla kilku- tysięcy losowych przypadków, okazało by się, który mnożnik daje najlepsze efekty.
Można wtedy dobrać który kierunek początkowy jest bardziej optymalny - i jaka długość jednostki.
Dowiedziałbyś się jak zbudowoany jest Twój generator losowy - czyli tłumacz: w realnym świecie rzeczywistość.
Włąśnie wiem że to kompldetnie bezsensu, dlatego chciałam obrać taktykę jeden krok w lewo, dwa w prawo, trzy w lewo itd... Ale twój pomysł wydaje się być lepszy Dzięki :)