Geben Sie bei gegebener Breite / Länge von zwei Punkten auf dem Mond (lat1, lon1)und (lat2, lon2)der Entfernung zwischen den beiden Punkten in Kilometern eine beliebige Formel an , die das gleiche Ergebnis wie die Haversine-Formel liefert.
Eingang
- Vier ganzzahlige Werte
lat1, lon1, lat2, lon2in Grad (Winkel) oder - vier Dezimalwerte
ϕ1, λ1, ϕ2, λ2im Bogenmaß.
Ausgabe
Abstand in Kilometern zwischen den beiden Punkten (Dezimalzahl mit beliebiger Genauigkeit oder gerundeter Ganzzahl).
Haversine Formel
wo
rist der Radius der Kugel (angenommen, der Radius des Mondes beträgt 1737 km),ϕ1Breitengrad von Punkt 1 im Bogenmaßϕ2Breitengrad von Punkt 2 im Bogenmaßλ1Länge von Punkt 1 im Bogenmaßλ2Länge von Punkt 2 im Bogenmaßdist der kreisförmige Abstand zwischen den beiden Punkten
(Quelle: https://en.wikipedia.org/wiki/Haversine_formula )
Andere mögliche Formeln
d = r * acos(sin ϕ1 sin ϕ2 + cos ϕ1 cos ϕ2 cos(λ2 - λ1))@ Meilen 'Formel .d = r * acos(cos(ϕ1 - ϕ2) + cos ϕ1 cos ϕ2 (cos(λ2 - λ1) - 1))@Neils Formel .
Beispiel, bei dem Eingaben Grad sind und Ausgaben als gerundete Ganzzahl ausgegeben werden
42, 9, 50, 2 --> 284
50, 2, 42, 9 --> 284
4, -2, -2, 1 --> 203
77, 8, 77, 8 --> 0
10, 2, 88, 9 --> 2365
Regeln
- Die Eingabe und Ausgabe kann in jedem geeigneten Format erfolgen .
- Geben Sie in der Antwort an, ob die Eingaben in Grad oder Bogenmaß erfolgen .
- Keine Notwendigkeit, ungültige Breiten- / Längengrade zu verarbeiten
- Entweder ein vollständiges Programm oder eine Funktion sind akzeptabel. Wenn es sich um eine Funktion handelt, können Sie die Ausgabe zurückgeben, anstatt sie zu drucken.
- Wenn möglich, fügen Sie bitte einen Link zu einer Online-Testumgebung hinzu, damit andere Personen Ihren Code ausprobieren können!
- Standardlücken sind verboten.
- Dies ist Code-Golf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Bytes) gewinnt.
d = r * acos( sin ϕ1 sin ϕ2 + cos ϕ1 cos ϕ2 cos(λ2 - λ1) )wor = 1737

