给定平面上三个点的笛卡尔坐标,通过它们全部找到圆的方程。这三个点将不在一条直线上。
程序输入的每一行将按顺序包含3个点的x和y坐标A(x),A(y),B(x),B(y),C(x),C(y)。这些坐标是小于1,000,000的实数,彼此之间用空格隔开。
解决方案将作为形式的等式打印(x-h)^2 + (y-k)^2 = r^2。对值h,k,r将被印刷有小数点后三位数字。应根据需要更改方程式中的正号和负号,以避免在数字前出现多个正号。
Sample Inputs
7.0 -5.0 -1.0 1.0 0.0 -6.0
1.0 7.0 8.0 6.0 7.0 -2.0
Sample Outputs
(x - 3.000)^2 + (y + 2.000)^2 = 5.000^2
(x - 3.921)^2 + (y - 2.447)^2 = 5.409^2
我们可以改用极性或参数方程吗?
—
彼得·奥尔森
@peterNo。那样将很难与其他答案进行比较。
—
fR0DDY 2011年
如果没有独特的解决方案,应该输出什么?数值鲁棒性有哪些约束?
—
彼得·泰勒
@ peter-taylor问题说明中给出了“这三点不会成一直线”。
—
fR0DDY 2011年
当然,它只有几个字符,所以我的解决方案可能要短一些,这不是一个问题,这只是一个老实的问题……但是,如果输出规范中包含空格,这不是强制性的吗?否则,在代码高尔夫球中,为什么有人会满足输出规范?
—
丽贝卡·切诺夫