Esto es algo similar a Los centros de un triángulo , pero con un punto diferente. El punto de Fermat es el punto P en el triángulo ABC, de modo que el valor de AP + BP + CP se minimiza. Hay dos casos:
Si hay un ángulo mayor de 120 grados, ese vértice es el punto de fermat. De lo contrario, dibuje triángulos equiláteros en cada uno de los lados de ABC. Conecte el vértice lejano de cada triángulo equilátero al vértice opuesto del triángulo ABC. Hacer esto para cada uno de los tres triángulos equiláteros da como resultado un único punto común de intersección para las tres líneas, que es el punto de Fermat.
Debe ejecutarse dentro de los 5 segundos en una máquina razonable.
Entrada : Un conjunto de 3 puntos, no necesariamente enteros. Esto se puede tomar como una matriz anidada, una cadena, una lista de tuplas, etc. (lo que se adapte a su idioma).
Salida : las coordenadas del punto Fermat, de nuevo, sin embargo, su idioma maneja mejor los puntos. Las imprecisiones de coma flotante no se contarán en su contra.
Casos de prueba :
[[1, 1], [2, 2], [1, 2]] --> [1.2113248654051871, 1.788675134594813]
[[-1, -1], [-2, -1], [0, 0]] --> [-1, -1]
[[-1, -1], [1, -1], [0, 1]] --> [0, -0.42264973081037427]
[[0, 0], [0.5, 0.8660254037844386], [-5, 0]] --> [0, 0]
[[0, 0], [0, -5], [-0.8660254037844386, 0.5]] --> [0, 0]
Este es el código de golf, ¡el código más corto gana!
-0.0
se emite en lugar de algunos 0.0
s?