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,10precisa ser 5,86, já que ele sai 5.85786...e você arredondou o abaixo.
