Yatan bir noktaya seyahat düşünün bir uzak yatay mil ve B bulunduğunuz konumdan uzak dikey mil. Başka bir deyişle, bir (0, 0)
noktadan seyahat etmek (a, b)
. Ne kadar uzağa seyahat etmen gerekiyor? Bu basit bir soru gibi görünüyor, ancak cevap kime sorduğunuza bağlı. Eğer bir karga, ve seyahat Eğer kuş uçuşu mesafe adildir gitti Öklit mesafesi kadar (a, b)
. Bu
sqrt(a^2 + b^2)
Ama eğer sadece sıkıcı bir insansanız, gerçekten o kadar yürümek istemezsiniz, bu yüzden taksiye binmeniz gerekir. Çoğu taksiler gideceğiniz yere doğru düz bir yolda gitmezler çünkü genellikle yollarda kalmaya çalışırlar. Bu yüzden seyahat edeceğiniz gerçek mesafe dikey mesafenin ve yatay mesafenin toplamıdır. Veya formül:
abs(a) + abs(b)
Buna Taxicab Distance denir . Bu resim, ikisi arasındaki farkı güzel bir şekilde gösteriyor:
Seyahat etmek için (6, 6)
, bir karga sadece yeşil hatta uçabilir ve bu, 6 * sqrt(2)
yaklaşık 8.49'luk bir mesafe verir . Bir taksici kırmızı, mavi veya sarı yolları alabilir, ancak hepsi 12 olacak.
Bu soruyorum gerçek soruya yol açar. Bir karga ve bir taksinin her ikisi de noktadan ayrılır ve bir noktaya (0, 0)
seyahat ederse (a, b)
, taksinin yolu ne kadar uzundur? Veya, daha fazla matematik jargonunda,
İki boyutlu bir vektör verildiğinde, vektörün norm2'si ile vektörün norm1'i arasındaki farkı belirleyin.
Bu soruyu cevaplamak için mümkün olan en kısa programı veya işlevi yazmalısınız. 'A' ve 'b' yi iki ayrı giriş olarak ya da iki öğe parçası olarak almayı seçebilirsiniz. Herhangi bir makul formatta girdi ve çıktı alabilirsiniz. Fark tam sayı değilse, en az iki ondalık basamağa kadar doğru olmalısınız.
Her zaman 'a' ve 'b'nin tamsayı olacağını ve her ikisinin de 0 olmayacağını varsayabilirsiniz. (Her ikisinden birinin sıfır olması mümkün olsa da)
Her zaman olduğu gibi, standart boşluklar geçerlidir ve programınızı bayt sayılarak mümkün olduğunca kısa tutmaya çalışın.
Kodun nasıl çalıştığı hakkında bir açıklama yapan ve baytları kurtarmak için kullanılan herhangi bir harika hileyi gösteren yanıtları iptal edeceğim.
Kodunuzu sınamanız için bazı örnekler:
#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
Golf eğlenin! :)
10,10
5.86 olması gerekiyor, çünkü ortaya çıkıyor 5.85786...
ve altını da yuvarladınız.