Cho vĩ độ / kinh độ của hai điểm trên Mặt trăng (lat1, lon1)
và (lat2, lon2)
tính khoảng cách giữa hai điểm tính bằng km, bằng cách sử dụng bất kỳ công thức nào cho kết quả tương tự như công thức haversine.
Đầu vào
- Bốn giá trị nguyên
lat1, lon1, lat2, lon2
theo độ (góc) hoặc - bốn giá trị thập phân
ϕ1, λ1, ϕ2, λ2
tính bằng radian.
Đầu ra
Khoảng cách tính bằng km giữa hai điểm (số thập phân với bất kỳ số nguyên chính xác hoặc làm tròn).
Công thức Haversine
Ở đâu
r
là bán kính của hình cầu (giả sử bán kính của Mặt trăng là 1737 km),ϕ1
vĩ độ của điểm 1 tính bằng radianϕ2
vĩ độ của điểm 2 tính bằng radianλ1
kinh độ của điểm 1 tính bằng radianλ2
kinh độ của điểm 2 tính bằng radiand
là khoảng cách tròn giữa hai điểm
(nguồn: https://en.wikipedia.org/wiki/Haversine_formula )
Các công thức có thể khác
d = r * acos(sin ϕ1 sin ϕ2 + cos ϕ1 cos ϕ2 cos(λ2 - λ1))
@miles 'công thức .d = r * acos(cos(ϕ1 - ϕ2) + cos ϕ1 cos ϕ2 (cos(λ2 - λ1) - 1))
Công thức của @Neil .
Ví dụ trong đó đầu vào là độ và đầu ra là số nguyên tròn
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
Quy tắc
- Đầu vào và đầu ra có thể được đưa ra trong bất kỳ định dạng thuận tiện .
- Chỉ định trong câu trả lời cho dù đầu vào là độ hoặc radian .
- Không cần xử lý các giá trị vĩ độ / kinh độ không hợp lệ
- Hoặc là một chương trình đầy đủ hoặc một chức năng được chấp nhận. Nếu một chức năng, bạn có thể trả lại đầu ra thay vì in nó.
- Nếu có thể, vui lòng bao gồm một liên kết đến một môi trường thử nghiệm trực tuyến để người khác có thể thử mã của bạn!
- Sơ hở tiêu chuẩn bị cấm.
- Đây là môn đánh gôn, vì vậy tất cả các quy tắc chơi gôn thông thường đều được áp dụng và mã ngắn nhất (tính bằng byte) sẽ thắng.
d = r * acos( sin ϕ1 sin ϕ2 + cos ϕ1 cos ϕ2 cos(λ2 - λ1) )
nơir = 1737