"Und jetzt etwas ganz anderes."
Ein wütender Vogel wird in einem Winkel β zur Horizontalen mit einer Geschwindigkeit u geschossen. Der Boden ist steil und in einem Winkel α geneigt. Finden Sie die horizontale Entfernung q , die der Vogel zurückgelegt hat, bevor er den Boden berührt hat.
Machen Sie eine Funktion f (α, β, u), die die Länge q zurückgibt : die horizontale Distanz, die der Vogel zurückgelegt hat, bevor er den Boden berührt hat.
Einschränkungen und Hinweise:
- -90 <α <90.
- 0 <β <180.
- α ist immer kleiner als β.
- 0 <= u <10 ^ 9.
- Nehmen Sie eine Erdbeschleunigung g = 10 an.
- Sie können für α, β Bogenmaß anstelle von Grad verwenden.
- Die Dimensionen von u sind irrelevant, solange sie mit g und q übereinstimmen.
- Kein Luftwiderstand oder etwas zu ausgefallenes.
Der kürzeste Code gewinnt.
Im Wikipedia-Artikel über Projektilbewegungen finden Sie einige Gleichungen.
Proben:
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[β - α]]
Antworten:
Java
Funktioniert nur im Bogenmaß
Golfversion (Danke an Peter)
Verwendete Mathematik:
quelle
Haskell (
37-35)Basierend auf Amans Lösung:
Ich denke, dieses Problem ist kein echtes Code-Golf, da es eher eine Formel implementiert als einen Algorithmus.
quelle
/5
oder/5.
funktionieren?Python3 - 65 Zeichen
quelle