这有点类似于三角形的中心,但是具有不同的点。在费马点是在三角形ABC中的点P,使得AP + BP + CP的值被最小化。有两种情况:
如果角度大于120度,则该顶点为费马点。否则,在ABC的每一侧上绘制等边三角形。将每个等边三角形的远顶点连接到三角形ABC的相反顶点。对三个等边三角形中的每一个进行此操作会导致所有三条线的单个公共交点,即费马点。
它应在合理的计算机上运行5秒钟。
输入:一组3点,不一定是整数。可以将其视为嵌套数组,字符串,元组列表等(无论哪种语言)。
输出:同样,费马点的坐标,但是您的语言最能处理点。浮点数错误将不算在您身上。
测试用例:
[[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]
这是代码高尔夫球,所以最短的代码获胜!
1
是否可以尝试以浮点精度为增量的所有点,然后选择最小化总距离的点?
—
xnor
@xnor如果可以在5秒钟内完成操作。
—
soktinpk
输出必须精确到多少位有效数字?另外,如果
—
卡普
-0.0
输出代替某些0.0
s也可以吗?
@R。Kap我会说大约5或6个有效数字。舍入错误应该不是什么大问题。至于第二个问题,这似乎很好。
—
soktinpk