Twoim zadaniem jest zaplanowanie trasy przelotu dla lokalnej firmy dostarczającej samoloty. Musisz poprowadzić samolot z punktu A do punktu B. Po prostu nie możesz wystartować w punkcie A, skierować samolot w stronę B i lecieć, ponieważ panujące wiatry zdmuchną cię z kursu. Zamiast tego musisz dowiedzieć się, w którym kierunku powinieneś wycelować samolot, aby leciał bezpośrednio do B, biorąc pod uwagę wiatr.
Wejście
7 liczb zmiennoprzecinkowych, kodujących A_x, A_y, B_x, B_y, S, W_x, W_y. Są to współrzędne punktu początkowego i docelowego, prędkość lotu swojego samolotu, a siła wiatru wzdłuż osi X i Y (kierunek wiatr wieje na nie z).
wynik
Powinieneś wydrukować kąt w stopniach (obracając się przeciwnie do ruchu wskazówek zegara od dodatniej osi x), który płaszczyzna powinna wskazywać, aby osiągnąć B w linii prostej. Wydrukuj, GROUNDED
jeśli wiatr jest tak silny, że uniemożliwi podróż.
Możesz zaokrąglać do najbliższego stopnia i robić to dowolną metodą (góra / dół / najbliższy / ...).
przykłady
wejścia
0 0 10 0 100 0 -50
0 0 10 0 50 -55 0
3.3 9.1 -2.7 1.1 95.0 8.8 1.7
wyjścia
30
GROUNDED
229
Najkrótszy kod wygrywa.
a sin x + b cos x = c
w Google kilka metod rozwiązywania twojego równania. Bezpośrednie rozwiązywanie może jednak nie być najlepszym sposobem na przejście tutaj ...Odpowiedzi:
J - 155 znaków
Na przykład:
Usunąć
0".
wyprzedzenie,y
jeśli nie masz nic przeciwko składni numerycznej J (_
dla jednoargumentowej negacji):Jak wspomniałem w mojej odpowiedzi na Perla, uczę się tylko J, ale lubię jego moc.
źródło
Perl - 222 znaki
Prosty algorytm i tak naprawdę grał w golfa tylko przez ściśnięcie białych znaków i zmiennej długości nazwy, ale myślałem, że potrzebujemy tutaj pierwszej odpowiedzi. Nauczyłem się trochę gry w golfa; Podejrzewam, że zwykłe tłumaczenie na J (lub Ruby) łatwo to pokona. Off, aby spróbować.
$X
= komponent bocznego wiatru,$T
= komponent bocznego wiatru. Jesteśmy uziemieni, jeśli wiatr tylny jest rzeczywiście wiatrem przeciwnym (tj. Ujemnym) i silniejszy niż nasza prędkość. W przeciwnym razie$C
jest to kąt korekcji wiatru, który odejmujemy od kursu,$c
aby uzyskać właściwy kurs . Musimy skręcić wystarczająco daleko, aby zrównoważyć wiatr boczny z składową poprzeczną naszej prędkości.źródło
Perl: 193
Trzeba przyznać, że jest to (przeważnie) kod Perla DCharness: ale kto nie lubi źródła samemu przepisującego?
Wyprowadzi również stopnie poza specyfikacją (tj. <0 lub> 360), ale czy wspomniałem o źródle do przepisywania?
źródło