Questo è in qualche modo simile ai centri di un triangolo , ma con un punto diverso. Il Fermat Point è il punto P nel triangolo ABC in modo tale che il valore di AP + BP + CP sia ridotto al minimo. Esistono due casi:
Se c'è un angolo maggiore di 120 gradi, quel vertice è il punto di arresto. Altrimenti, disegna triangoli equilateri su ciascuno dei lati di ABC. Collegare il vertice lontano di ciascun triangolo equilatero al vertice opposto del triangolo ABC. In questo modo per ciascuno dei tre triangoli equilateri si ottiene un unico punto di intersezione comune per tutte e tre le linee, che è il punto di Fermat.
Dovrebbe funzionare entro 5 secondi su una macchina ragionevole.
Input : un set di 3 punti, non necessariamente numeri interi. Questo può essere preso come un array nidificato, una stringa, un elenco di tuple, ecc. (Qualunque cosa si adatti alla tua lingua).
Output : le coordinate del punto Fermat, ancora una volta, tuttavia la tua lingua gestisce meglio i punti. Le imprecisioni in virgola mobile non verranno conteggiate nei tuoi confronti.
Casi di prova :
[[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]
Questo è il codice golf, quindi vince il codice più corto!
-0.0output è al posto di alcuni 0.0s?
