W matematyce cykliczny czworokąt to taki, którego wierzchołki leżą na tym samym kole. Innymi słowy, każdy wierzchołek znajduje się na obwodzie pozostałych trzech. Aby uzyskać więcej informacji, zobacz artykuł MathWorld .
Przykłady
Te czworokąty są cykliczne:
Ten trapez nie jest cykliczny.
(Obrazy z Wikipedii)
Cel
Biorąc pod uwagę współrzędne czterech wierzchołków w kolejności przeciwnej do ruchu wskazówek zegara, które tworzą wypukły czworokąt, ustal, czy czworokąt jest cykliczny.
Współrzędne będą liczbami całkowitymi (należy jednak pamiętać, że współrzędne i obwód wokół okręgu niekoniecznie są liczbami całkowitymi.) Jak sugeruje poprzedni akapit, żadne trzy punkty nie będą współliniowe i żadne dwa zbieżne.
I / O
Możesz przyjmować dane wejściowe w dowolnym rozsądnym formacie. W szczególności [[x1,x2,x3,x4],[y1,y2,y3,y4]]
, [[x1,y1],[x2,y2],[x3,y3],[x4,y4]]
i liczby zespolone są w porządku.
Dane wyjściowe przy użyciu różnych spójnych wartości dla true i false.
Przypadki testowe
Prawdziwe:
[0,0], [314,0], [314,1], [0,1]
[-5,5], [5,-5], [1337,42], [42,1337]
[104, -233], [109, -232], [112, -231], [123, -224]
Fałszywy:
[0,0], [314,0], [314,100], [0,99]
[31,41],[59,26],[53,58],[0,314]
źródło
JavaScript (ES6)
Testowanie kątów, 114 bajtów
Pobiera dane wejściowe jako tablicę . Zwraca wartość logiczną.[ x 1 , y1 , x 2 , y2 , x 3 , y3 , x 4 , y4 ]
Wypróbuj online!
Obliczanie wyznacznika, 130 bajtów
Pobiera dane wejściowe jako i w składni curry. Zwraca wartość logiczną.[ x 1 , x 2 , x 3 , x 4 ] [ y1 , y2 , y3 , y4 ]
Ta jest odpowiednikiem drugiej odpowiedzi MishaLavrov z obróconą matrycą.
Wypróbuj online!
źródło
TI-Basic (seria 83), 21 bajtów
Pobiera dane wejściowe jako listę czterech liczb zespolonych w
Ans
. Zwraca,1
jeśli czworokąt jest cykliczny i0
inaczej.Jest to obliczenie współczynnika krzyżowego Nwellnhofa , w ciężkim przebraniu. Jeśli zaczniemy od wartości , wówczas:z1,z2,z3,z4
ΔList(augment(Ans,Ans
oblicza różnice (i kilka innych zbędnych warunków),e^(ΔList(ln(
z tego oblicza się współczynniki .Zrobiłem co w mojej mocy, aby sprawdzić, czy błąd numeryczny jest problemem i wydaje się, że tak nie jest, ale jeśli ktoś ma dobre testy, daj mi znać.
źródło
JavaScript (ES6) (101 bajtów)
Pobiera dane wejściowe jako
[x1,y1,x2,y2,x3,y3,x4,y4]
, wyświetla wartość logiczną.Sprawdzane na podstawie gdzie to przekątne, a to boki w kolejności.ef=ac+bd e,f a,b,c,d
Wypróbuj online!
źródło
Galaretka , 11 bajtów
Wypróbuj online!
Wykorzystuje wyznacznik z rozwiązania Mathematica Miszy Ławrowa . Wyjścia 1 dla wartości true, 0 dla wartości false.
Jak to działa
Galaretka , 12 bajtów
Wypróbuj online!
Wykorzystuje skomplikowane podejście krzyżowe z rozwiązania TI-Basic Mishy Lavrov . Wyjścia 1 dla wartości true, 0 dla wartości false.
Jak to działa
Uważam, że oboje są golfistami ...
źródło
APL (Dyalog Classic) , 25 bajtów
Wypróbuj online!
Twierdzenie Ptolemeusza, kredyt: odpowiedź Кирилл Малышев
źródło