Bayangkan bepergian ke suatu titik berbaring A mil jauhnya secara horizontal dan B mil jauhnya secara vertikal dari posisi Anda saat ini. Atau dengan kata lain, melakukan perjalanan dari (0, 0)
titik ke titik (a, b)
. Seberapa jauh Anda harus berakhir bepergian? Ini sepertinya pertanyaan yang mudah, tetapi jawabannya tergantung pada siapa yang Anda tanyakan. Jika Anda seekor gagak, dan Anda dapat melakukan perjalanan saat gagak terbang , jarak yang ditempuh hanyalah jarak Euclidean ke (a, b)
. Ini adalah
sqrt(a^2 + b^2)
Tetapi jika Anda hanya manusia yang membosankan, Anda tidak benar-benar ingin berjalan sejauh itu, jadi Anda harus naik taksi. Sebagian besar taksi tidak akan mengemudi dalam garis lurus menuju tujuan Anda karena mereka umumnya mencoba untuk tetap berada di jalan. Jadi jarak sebenarnya yang akan Anda tempuh adalah jumlah dari jarak vertikal dan jarak horizontal. Atau rumusnya adalah:
abs(a) + abs(b)
Ini disebut Jarak Taksi . Gambar ini dengan baik menunjukkan perbedaan antara keduanya:
Untuk melakukan perjalanan (6, 6)
, seekor gagak bisa terbang di garis hijau, dan ini memberi jarak 6 * sqrt(2)
sekitar 8,49. Taksi dapat mengambil jalur merah, biru atau kuning, tetapi semuanya akan mengambil 12.
Ini mengarah ke pertanyaan nyata yang saya tanyakan. Jika burung gagak dan taksi keduanya berangkat dari titik (0, 0)
, dan melakukan perjalanan ke titik (a, b)
, berapa lama lagi jalur taksi itu? Atau, dalam jargon matematika lebih banyak,
Diberikan vektor dua dimensi, tentukan perbedaan antara norm2 vektor, dan norm1 vektor.
Anda harus menulis program atau fungsi sesingkat mungkin untuk menjawab pertanyaan ini. Anda dapat memilih untuk mengambil 'a' dan 'b' sebagai dua input terpisah, atau sebagai dua item tuple. Anda dapat mengambil input dan output dalam format apa pun yang masuk akal. Jika perbedaannya bukan bilangan bulat, Anda harus akurat ke setidaknya dua tempat desimal.
Anda selalu dapat berasumsi bahwa 'a' dan 'b' akan menjadi bilangan bulat, dan bahwa keduanya tidak akan menjadi 0. (Meskipun mungkin salah satu dari mereka akan menjadi nol)
Seperti biasa, celah standar berlaku dan mencoba membuat program Anda sesingkat mungkin, dihitung dalam byte.
Saya akan menjawab setiap jawaban yang memposting penjelasan tentang bagaimana kode bekerja, dan menunjukkan trik keren yang digunakan untuk menyimpan byte.
Berikut adalah beberapa contoh bagi Anda untuk menguji kode Anda:
#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
Bersenang-senang bermain golf! :)
10,10
kebutuhan harus 5,86, karena keluar 5.85786...
dan Anda membulatkan yang di bawahnya.