Ceci est quelque peu similaire aux centres d'un triangle , mais avec un point différent. Le point de Fermat est le point P dans le triangle ABC de sorte que la valeur de AP + BP + CP soit minimisée. Il y a deux cas:
S'il y a un angle supérieur à 120 degrés, ce sommet est le point de fermat. Sinon, dessinez des triangles équilatéraux sur chacun des côtés de ABC. Connectez le sommet éloigné de chaque triangle équilatéral au sommet opposé du triangle ABC. Faire cela pour chacun des trois triangles équilatéraux résulte en un seul point d'intersection commun pour les trois lignes, qui est le point de Fermat.
Il devrait fonctionner dans les 5 secondes sur une machine raisonnable.
Entrée : un ensemble de 3 points, pas nécessairement des entiers. Cela peut être considéré comme un tableau imbriqué, une chaîne, une liste de tuples, etc. (selon ce qui convient à votre langue).
Sortie : Les coordonnées du point Fermat, encore une fois, mais votre langue gère le mieux les points. Les inexactitudes en virgule flottante ne seront pas prises en compte pour vous.
Cas de test :
[[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]
C'est le golf de code donc le code le plus court gagne!
-0.0
sortie remplace certains 0.0
s?