"A teraz coś z zupełnie innej beczki."
Zły ptak jest nagrywany pod kątem p do poziomu, przy prędkości u. Ziemia jest stroma, nachylona pod kątem α. Znajdź poziomą odległość q, którą ptak przebył, zanim uderzył o ziemię.
Stwórz funkcję f (α, β, u), która zwraca długość q : odległość w poziomie, jaką przebył ptak przed uderzeniem o ziemię.
Ograniczenia i uwagi:
- -90 <α <90.
- 0 <β <180.
- α jest zawsze mniejsze niż β.
- 0 <= u <10 ^ 9.
- Przyjmij przyspieszenie ziemskie g = 10.
- Możesz użyć radianów zamiast stopni dla α, β.
- Wymiary u są nieistotne, o ile są zgodne z gi q.
- Brak oporu powietrza lub coś zbyt wymyślnego.
Najkrótszy kod wygrywa.
Zobacz artykuł w Wikipedii na temat ruchu pocisków dla niektórych równań.
Próbki:
f(0, 45, 10) = 10
f(0, 90, 100) = 0
f(26.565, 45, 10) = 5
f(26.565, 135, 10) = 15
q = ABS[1/5 u^2 Cos[β] Sec[α] Sin[β - α]]
Odpowiedzi:
Jawa
Działa tylko w radianach
Wersja w golfa (Podziękowania dla Petera)
Zastosowane matematyki:
źródło
Haskell (
3735)W oparciu o rozwiązanie Aman:
Myślę, że ten problem nie jest prawdziwym golfem, ponieważ bardziej implementuje formułę niż naprawdę robi jakiś algorytm.
źródło
/5
lub/5.
działałoby?Python3 - 65 znaków
źródło