Ini agak mirip dengan pusat-pusat segitiga , tetapi dengan titik berbeda. The Fermat Titik adalah titik P di segitiga ABC sehingga nilai AP + BP + CP diminimalkan. Ada dua kasus:
Jika ada sudut lebih besar dari 120 derajat, titik itu adalah titik kulit. Jika tidak, gambar segitiga sama sisi pada masing-masing sisi ABC. Hubungkan titik jauh dari setiap segitiga sama sisi ke sudut berlawanan dari segitiga ABC. Melakukan ini untuk masing-masing dari tiga segitiga sama sisi menghasilkan titik persimpangan tunggal untuk ketiga garis, yaitu Fermat Point.
Ini harus berjalan dalam 5 detik pada mesin yang masuk akal.
Input : Satu set 3 poin, tidak harus bilangan bulat. Ini dapat diambil sebagai array bersarang, string, daftar tupel, dll. (Apa pun yang sesuai dengan bahasa Anda).
Output : Koordinat titik Fermat, sekali lagi, namun bahasa Anda paling baik menangani poin. Ketidakakuratan titik mengambang tidak akan dihitung terhadap Anda.
Kasus uji :
[[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]
Ini golf kode sehingga kode terpendek menang!
-0.0
output menggantikan beberapa 0.0
s?