Introducción
Imagina que estás en un plano cartesiano bidimensional y quieres determinar tu posición en él. Sabes 3 puntos en ese avión y tu distancia a cada uno de ellos. Si bien siempre es posible calcular su posición a partir de eso, hacerlo en su cabeza es bastante difícil. Entonces decides escribir un programa para eso.
El reto
Dados 3 puntos y su distancia a ellos, envíe los cordinates de su posición.
- La entrada y la salida pueden estar en cualquier formato conveniente, incluido el uso de números complejos en lugar de números reales. Por favor, aclare en su respuesta qué formato utiliza.
- Siempre obtendrá exactamente 3 puntos distintos con su distancia a usted.
- Las coordenadas y distancias serán flotantes con precisión arbitraria. Su salida tiene que ser correcta a 3 decimales. El redondeo depende de usted. Por favor aclare en su respuesta.
- Puede suponer que los tres puntos no son colineales, por lo que siempre habrá una solución única.
- No está permitido aplicar fuerza bruta a la solución.
- No puede usar ningún componente incorporado que trivialice este problema en particular. Sin embargo, se permiten las construcciones para normas vectoriales, etc.
Sugerencia para comenzar:
Piensa en un círculo alrededor de cada uno de esos 3 puntos con su distancia a ti como radio.
Reglas
- Función o programa completo permitido.
- Reglas predeterminadas para entrada / salida.
- Se aplican lagunas estándar .
- Este es el código de golf , por lo que gana el conteo de bytes más bajo. Tiebreaker es una presentación anterior.
Casos de prueba
El formato de entrada para un punto aquí es [[x,y],d]
con x
y y
siendo las coordenadas y d
la distancia a este punto. Los 3 de esos puntos están ordenados en una lista. La salida será x
y luego y
en una lista.
[[[1, 2], 1.414], [[1, 1], 2.236], [[2, 2], 1.0]] -> [2, 3] [[[24.234, -13.902], 31.46], [[12.3242, 234.12], 229.953], [[23.983, 0.321], 25.572]] -> [-1.234, 4.567] [[[973.23, -123.221], 1398.016], [[-12.123, -98.001], 990.537], [[-176.92, 0], 912.087]] -> [12.345, 892.234]
Puede generar casos de prueba adicionales con este programa Pyth . La ubicación va en la primera línea de la entrada y los 3 puntos están en las siguientes 3 líneas.
¡Feliz codificación!
solve
(dado tres ecuaciones circulares) trivializar el problema? Pensé que era, pero si estás de acuerdo con esas cosas, seguiré y lo publicaré.