Imagine viajar para um ponto situado A milhas de distância horizontalmente e B milhas de distância verticalmente de sua posição atual. Ou, em outras palavras, viajando do (0, 0)
ponto ao ponto (a, b)
. Até onde você precisaria para viajar? Parece uma pergunta direta, mas a resposta depende de quem você perguntar. Se você é um corvo e pode viajar enquanto o corvo voa , a distância percorrida é apenas a distância euclidiana de (a, b)
. Isto é
sqrt(a^2 + b^2)
Mas se você é apenas um humano chato, não quer ir tão longe, então precisará pegar um táxi. A maioria dos táxis não dirige em linha reta em direção ao seu destino, porque geralmente tenta permanecer nas estradas. Portanto, a distância real que você vai viajar é a soma da distância vertical e da distância horizontal. Ou a fórmula é:
abs(a) + abs(b)
Isso é chamado de distância do táxi . Esta imagem demonstra bem a diferença entre os dois:
Para viajar (6, 6)
, um corvo pode simplesmente voar na linha verde, e isso dá uma distância de 6 * sqrt(2)
aproximadamente 8,49. Um táxi pode seguir os caminhos vermelho, azul ou amarelo, mas todos seguirão 12.
Isso leva à verdadeira pergunta que estou fazendo. Se um corvo e um táxi partem do ponto (0, 0)
e viajam para o ponto (a, b)
, quanto tempo é o caminho do táxi? Ou, em mais jargão matemático,
Dado um vetor bidimensional, determine a diferença entre a normam2 do vetor e a norma1 do vetor.
Você deve escrever o programa ou função mais curto possível para responder a esta pergunta. Você pode escolher 'a' e 'b' como duas entradas separadas ou como uma tupla de dois itens. Você pode receber entrada e saída em qualquer formato razoável. Se a diferença for um número inteiro, você deve ter precisão de pelo menos duas casas decimais.
Você sempre pode assumir que 'a' e 'b' serão números inteiros e que ambos não serão 0. (Embora seja possível que qualquer um deles seja zero)
Como sempre, brechas padrão se aplicam e tentam tornar seu programa o mais curto possível, contado em bytes.
Votarei qualquer resposta que postar uma explicação de como o código funciona e demonstre quaisquer truques interessantes usados para salvar bytes.
Aqui estão alguns exemplos para você testar seu código:
#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
Divirta-se jogando golfe! :)
10,10
precisa ser 5,86, já que ele sai 5.85786...
e você arredondou o abaixo.