"Et maintenant pour quelque chose de complètement différent."
Un oiseau en colère est abattu selon un angle β par rapport à l'horizontale à une vitesse u. Le sol est raide, incliné d'un angle α. Trouvez la distance horizontale q que l'oiseau a parcourue avant de toucher le sol.
Faites une fonction f (α, β, u) qui renvoie la longueur q : la distance horizontale parcourue par l'oiseau avant de toucher le sol.
Contraintes et notes:
- -90 <α <90.
- 0 <β <180.
- α est toujours plus petit que β.
- 0 <= u <10 ^ 9.
- Supposons une accélération due à la gravité g = 10.
- Vous pouvez utiliser des radians au lieu de degrés pour α, β.
- Les dimensions de u ne sont pas pertinentes tant qu'elles sont cohérentes avec g et q.
- Aucune résistance à l'air ou quelque chose de trop sophistiqué.
Le code le plus court gagne.
Voir l'article de wikipedia sur le mouvement des projectiles pour quelques équations.
Échantillons:
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[β - α]]
Réponses:
Java
Fonctionne uniquement pour les radians
Version golfée (Merci à Peter)
Maths utilisés:
la source
Haskell (
3735)Basé sur la solution d'Aman:
Je pense que ce problème n'est pas un vrai code-golf, car il s'agit plus d'implémenter une formule que de faire vraiment un algorithme.
la source
/5
ou/5.
fonctionnerait?Python3 - 65 caractères
la source