Resolviendo el #TuentiChallenge4: Challenge 3 – The Gambler’s Club – Monkey Island 2

El tercer problema fue un ataque directo a la nostalgia. Nos hicieron recordar un juegazo para ponernos en ambiente y explicarnos el reto a responder. Debíamos ir a una página web en la que ingresando dos números nos daba como resultado un tercero y nuestro deber era descubrir cómo calcular ese tercero.

Análisis del problema

Estos fueron mis tres intentos, en orden.

  1. x,y = 1,1 Result = 1.41 mmmm, okok es la raíz de la suma o quizás…
  2. x,y = 3,4 Result = 5 ¡jajaja no pueden ser tan descarados así!
  3. x,y = 5,12 Result = 13 vale vale, solo quería verificar

En fin, que nos pedían calcular la hipotenusa de un triángulo equilátero, dado sus catetos. Que en criollo es Pitágoras.

Solución enviada

Quería hacerlo desde la terminal, usando bc y tratar de tener una de esas soluciones que caben en un tweet, pero no se me ocurrió en el momento así que me dejé de tonterías y lo implementé en Python. Nada del otro mundo.

import math

N = int(raw_input())
for n in range(N):
  (x,y) = [int(i) for i in raw_input().split(' ')]
  z = math.sqrt(x**2 + y**2)
  z = ("%.2f" % z).rstrip('.0')
  print z

Buscando entre los compañeros encontré la solución de @SrXimo que usa directamente math.hypot. No sabía que existía. Me la apunto a mi arsenal.

Como anécdota también me parece curioso resaltar la solución de @Nosoynadiemas quien no vió que la fórmula era el teorema de Pitágoras y aun así encontró otra relación matemática que también resolvía el problema. ¡Nada mal!

Finalmente, ahora mismo se me ocurrió la solución en un tweet. Usando awk en vez de bc. ¿Qué les parece?

awk '/[0-9]+ [0-9]+/ {printf "%.2f\n",sqrt($1*$1+$2*$2)}' | sed -re 's/.00//g'

Deja un comentario