問題:
デカルト平面内の空でない点のセットが与えられた場合、それらすべてを囲む最小の円を見つけます(Wikipediaリンク)。
この問題は、ポイントの数が3以下の場合は簡単です(1つのポイントがある場合、円の半径はゼロです。2つのポイントがある場合、ポイントを結ぶ線分は円の直径です。 3つの(非共直線)ポイント、それらが非鈍角三角形を形成する場合、それらすべてに接触する円の方程式、または2つの点のみに接触し、三角形が鈍角の場合に3番目を囲む円の方程式を取得することができます)。したがって、この課題のために、ポイントの数は3より大きくする必要があります。
チャレンジ:
- 入力: 4つ以上の非共線点のリスト。ポイントにはX座標とY座標が必要です。座標はフロートにすることができます。課題を簡単にするために、2つのポイントが同じX座標を共有しないようにしてください。
例えば:[(0,0), (2,1), (5,3), (-1,-1)]
- 出力:
(h,k,r)
ような値のタプルは、すべての点を囲む最小の円の方程式です。
ルール:
- プログラムに合った入力方法を選択できます。
- 出力は
STDOUT
、関数に出力されるか、関数によって返される必要があります。 - 「通常」の汎用言語が推奨されますが、任意のエソランを使用できます。
- 点は共線ではないと仮定できます。
- これはコードゴルフなので、バイト単位の最小のプログラムが優先されます。チャレンジが投稿されてから1週間後に勝者が選ばれます。
- 回答の最初の行に、ヘッダーとして使用した言語とバイト単位の長さを含めてください:
# Language: n bytes
- 回答の最初の行に、ヘッダーとして使用した言語とバイト単位の長さを含めてください:
テストケース:
- 1:
- 入力:
[(-8,0), (3,1), (-6.2,-8), (3,9.5)]
- 出力:
[-1.6, 0.75, 9.89]
- 入力:
- 2:
- 入力:
[(7.1,-6.9), (-7,-9), (5,10), (-9.5,-8)]
- 出力:
[-1.73, 0.58, 11.58]
- 入力:
- 3:
- 入力:
[(0,0), (1,2), (3,-4), (4,-5), (10,-10)]
- 出力:
[5.5, -4, 7.5]
- 入力:
- 4:
- 入力:
[(6,6), (-6,7), (-7,-6), (6,-8)]
- 出力:
[0, -0.5, 9.60]
- 入力:
ハッピーゴルフ!!!