Diberikan lintang / bujur dua titik di Bulan (lat1, lon1)
dan (lat2, lon2)
, hitung jarak antara dua titik dalam kilometer, dengan menggunakan rumus apa pun yang memberikan hasil yang sama dengan rumus haversine.
Memasukkan
- Empat nilai integer
lat1, lon1, lat2, lon2
dalam derajat (sudut) atau - empat nilai desimal
ϕ1, λ1, ϕ2, λ2
dalam radian.
Keluaran
Jarak dalam kilometer antara dua titik (desimal dengan presisi atau bilangan bulat bulat).
Formula Haversine
dimana
r
adalah jari-jari bola (anggap jari-jari Bulan adalah 1.737 km),ϕ1
lintang titik 1 dalam radianϕ2
lintang titik 2 dalam radianλ1
bujur titik 1 dalam radianλ2
bujur titik 2 dalam radiand
adalah jarak melingkar antara dua titik
(sumber: https://en.wikipedia.org/wiki/Haversine_formula )
Formula lain yang mungkin
d = r * acos(sin ϕ1 sin ϕ2 + cos ϕ1 cos ϕ2 cos(λ2 - λ1))
@miles rumus ' .d = r * acos(cos(ϕ1 - ϕ2) + cos ϕ1 cos ϕ2 (cos(λ2 - λ1) - 1))
@Neil formula .
Contoh di mana input adalah derajat dan output sebagai integer bulat
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
Aturan
- Input dan output dapat diberikan dalam format apa pun yang nyaman .
- Tentukan dalam jawaban apakah input dalam derajat atau radian .
- Tidak perlu menangani nilai lintang / bujur yang tidak valid
- Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
- Jika memungkinkan, harap sertakan tautan ke lingkungan pengujian online sehingga orang lain dapat mencoba kode Anda!
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
d = r * acos( sin ϕ1 sin ϕ2 + cos ϕ1 cos ϕ2 cos(λ2 - λ1) )
manar = 1737