Hãy tưởng tượng đi du lịch đến một điểm nằm Một dặm chiều ngang và B dặm theo chiều dọc từ vị trí hiện tại của bạn. Hay nói cách khác, đi từ (0, 0)
điểm đến (a, b)
. Bạn cần bao xa để kết thúc chuyến đi? Đây có vẻ như là một câu hỏi đơn giản, nhưng câu trả lời phụ thuộc vào người bạn hỏi. Nếu bạn là một con quạ, và bạn có thể di chuyển theo đường chim bay , khoảng cách đi du lịch chỉ là khoảng cách Euclide để (a, b)
. Đây là
sqrt(a^2 + b^2)
Nhưng nếu bạn chỉ là một con người nhàm chán, bạn không thực sự muốn đi bộ xa như vậy, vì vậy bạn sẽ cần phải đi taxi. Hầu hết các xe taxi sẽ không lái xe theo đường thẳng về đích của bạn bởi vì họ thường cố gắng ở trên đường. Vì vậy, khoảng cách thực sự bạn sẽ đi du lịch là tổng khoảng cách dọc và khoảng cách ngang. Hoặc công thức là:
abs(a) + abs(b)
Đây được gọi là Khoảng cách Taxicab . Bức ảnh này thể hiện độc đáo sự khác biệt giữa hai:
Để di chuyển đến (6, 6)
, một con quạ chỉ có thể bay trên đường màu xanh lá cây và điều này cho khoảng cách 6 * sqrt(2)
khoảng 8,49. Một chiếc taxi có thể đi theo con đường màu đỏ, màu xanh hoặc màu vàng, nhưng tất cả chúng sẽ mất 12 con.
Điều này dẫn đến câu hỏi thực sự tôi đang hỏi. Nếu cả một con quạ và một chiếc taxi rời khỏi điểm (0, 0)
, và đi đến điểm (a, b)
, thì con đường của taxi dài hơn bao lâu? Hoặc, trong thuật ngữ toán học nhiều hơn,
Cho một vectơ hai chiều, xác định sự khác biệt giữa Norm2 của vectơ và Norm1 của vectơ.
Bạn phải viết chương trình hoặc chức năng ngắn nhất có thể để trả lời câu hỏi này. Bạn có thể chọn lấy 'a' và 'b' làm hai đầu vào riêng biệt hoặc làm một bộ hai mục. Bạn có thể lấy đầu vào và đầu ra ở bất kỳ định dạng hợp lý. Nếu sự khác biệt là một số nguyên, bạn phải chính xác đến ít nhất hai chữ số thập phân.
Bạn luôn có thể giả sử rằng 'a' và 'b' sẽ là số nguyên và cả hai sẽ không bằng 0. (Mặc dù có thể một trong hai số đó sẽ bằng 0)
Như thường lệ, các sơ hở tiêu chuẩn áp dụng và cố gắng làm cho chương trình của bạn càng ngắn càng tốt, được tính bằng byte.
Tôi sẽ nêu lên bất kỳ câu trả lời nào đăng một lời giải thích về cách thức hoạt động của mã và chứng minh bất kỳ thủ thuật hay ho nào được sử dụng để lưu byte.
Dưới đây là một số ví dụ để bạn kiểm tra mã của mình trên:
#input #output
3, 4 2
-3, 4 2
-3, -4 2
6, 6 3.51
42, 0 0
10, 10 5.86
3, 3 1.76
Chúc bạn chơi golf vui vẻ! :)
10,10
cần phải là 5,86, vì nó được đưa ra 5.85786...
và bạn làm tròn cái bên dưới nó.