Problem:
Biorąc pod uwagę niepusty zestaw punktów na płaszczyźnie kartezjańskiej, znajdź najmniejsze koło, które je ogarnia ( link z Wikipedii ).
Ten problem jest trywialny, jeśli liczba punktów wynosi trzy lub mniej (jeśli jest jeden punkt, okrąg ma promień zero; jeśli są dwa punkty, odcinek linii łączący punkty jest średnicą koła; jeśli istnieją trzy (nieliniowe) punkty, możliwe jest uzyskanie równania koła, które dotyka ich wszystkich, jeśli tworzą trójkąt nie rozwarty lub koło, które dotyka tylko dwóch punktów i otacza trzeci, jeśli trójkąt jest tępy). Tak więc, ze względu na to wyzwanie, liczba punktów powinna być większa niż trzy.
Wyzwanie:
- Dane wejściowe: lista 4 lub więcej punktów innych niż kolinearne. Punkty powinny mieć współrzędne X i Y; współrzędne mogą być zmiennoprzecinkowe. Aby ułatwić wyzwanie, żadne dwa punkty nie powinny mieć tej samej współrzędnej X.
Na przykład:[(0,0), (2,1), (5,3), (-1,-1)]
- Wyjście: krotka wartości,
(h,k,r)
taka, że jest równaniem najmniejszego okręgu, który obejmuje wszystkie punkty.
Zasady:
- Możesz wybrać metodę wprowadzania odpowiednią dla twojego programu.
- Dane wyjściowe powinny zostać wydrukowane
STDOUT
lub zwrócone przez funkcję. - Preferowane są języki „zwykłe” ogólnego przeznaczenia, ale akceptowany jest każdy esolang.
- Możesz założyć, że punkty nie są współliniowe.
- To jest golf golfowy, więc wygrywa najmniejszy program w bajtach. Zwycięzca zostanie wybrany tydzień po opublikowaniu wyzwania.
- Jako nagłówek w pierwszym wierszu odpowiedzi podaj użyty język i długość w bajtach:
# Language: n bytes
- Jako nagłówek w pierwszym wierszu odpowiedzi podaj użyty język i długość w bajtach:
Przypadki testowe:
- 1:
- Wkład:
[(-8,0), (3,1), (-6.2,-8), (3,9.5)]
- Wydajność:
[-1.6, 0.75, 9.89]
- Wkład:
- 2:
- Wkład:
[(7.1,-6.9), (-7,-9), (5,10), (-9.5,-8)]
- Wydajność:
[-1.73, 0.58, 11.58]
- Wkład:
- 3:
- Wkład:
[(0,0), (1,2), (3,-4), (4,-5), (10,-10)]
- Wydajność:
[5.5, -4, 7.5]
- Wkład:
- 4:
- Wkład:
[(6,6), (-6,7), (-7,-6), (6,-8)]
- Wydajność:
[0, -0.5, 9.60]
- Wkład:
Miłej gry w golfa !!!