"Y ahora para algo completamente diferente."
Se dispara a un pájaro enojado en un ángulo β con respecto a la horizontal a una velocidad u. El terreno es empinado, inclinado en un ángulo α. Encuentre la distancia horizontal q recorrió el pájaro antes de tocar el suelo.
Haga una función f (α, β, u) que devuelva la longitud q : la distancia horizontal que recorrió el ave antes de tocar el suelo.
Restricciones y notas:
- -90 <α <90.
- 0 <β <180.
- α es siempre más pequeño que β.
- 0 <= u <10 ^ 9.
- Suponga la aceleración debido a la gravedad g = 10.
- Puede usar radianes en lugar de grados para α, β.
- Las dimensiones de u son irrelevantes siempre que sean consistentes con gyq.
- Sin resistencia al aire ni nada demasiado elegante.
El código más corto gana.
Vea el artículo de wikipedia sobre movimiento de proyectiles para algunas ecuaciones.
Muestras:
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[β - α]]
Respuestas:
Java
Funciona solo para radianes
Versión Golfed (Gracias a Peter)
Matemáticas utilizadas:
fuente
Haskell (
3735)Basado en la solución de Aman:
Creo que este problema no es un verdadero código de golf, ya que se trata más de implementar una fórmula que de hacer algún algoritmo.
fuente
/5
o/5.
funcionaría?Python3 - 65 caracteres
fuente