In der Mathematik ist ein zyklisches Viereck eines, dessen Eckpunkte alle auf demselben Kreis liegen. Mit anderen Worten, jeder Scheitelpunkt befindet sich auf dem Umkreis der anderen drei. Weitere Informationen finden Sie im MathWorld-Artikel .
Beispiele
Diese Vierecke sind zyklisch:
Dieses Trapez ist nicht zyklisch.
(Bilder aus Wikipedia)
Zielsetzung
Bestimmen Sie anhand der Koordinaten von vier Eckpunkten im Gegenuhrzeigersinn, die ein konvexes Viereck bilden, ob das Viereck zyklisch ist.
Koordinaten sind ganze Zahlen (beachten Sie jedoch, dass die Koordinaten des Umfangszentrums und der Umfangsradius nicht unbedingt ganze Zahlen sind.) Wie im vorherigen Absatz angedeutet, sind keine drei Punkte kolinear und keine zwei koinzident.
I / O
Sie können Eingaben in jedem vernünftigen Format vornehmen. Insbesondere [[x1,x2,x3,x4],[y1,y2,y3,y4]]
, [[x1,y1],[x2,y2],[x3,y3],[x4,y4]]
und komplexe Zahlen sind alle in Ordnung.
Ausgabe mit unterschiedlichen konsistenten Werten für true und false.
Testfälle
Wahr:
[0,0], [314,0], [314,1], [0,1]
[-5,5], [5,-5], [1337,42], [42,1337]
[104, -233], [109, -232], [112, -231], [123, -224]
Falsch:
[0,0], [314,0], [314,100], [0,99]
[31,41],[59,26],[53,58],[0,314]
quelle
JavaScript (ES6)
Testen der Winkel, 114 Bytes
Probieren Sie es online!
Berechnung einer Determinante, 130 Bytes
Diese entspricht der zweiten Antwort von Mischa Lawrow mit einer gedrehten Matrix.
Probieren Sie es online!
quelle
TI-Basic (Serie 83), 21 Byte
Übernimmt die Eingabe als Liste von vier komplexen Zahlen in
Ans
. Gibt zurück,1
ob das Viereck zyklisch ist oder0
nicht.ΔList(augment(Ans,Ans
e^(ΔList(ln(
davon werden die Verhältnisse berechnetIch habe mein Bestes getan, um zu überprüfen, ob ein numerischer Fehler ein Problem ist und dies anscheinend nicht der Fall ist. Wenn jemand gute Testfälle dafür hat, lassen Sie es mich bitte wissen.
quelle
JavaScript (ES6) (101 Byte)
Nimmt die Eingabe als
[x1,y1,x2,y2,x3,y3,x4,y4]
, gibt einen Booleschen Wert aus.Probieren Sie es online!
quelle
Jelly , 11 Bytes
Probieren Sie es online!
Verwendet den Determinantenansatz von Mischa Lawrows Mathematica-Lösung . Ausgänge 1 für wahr, 0 für falsch.
Wie es funktioniert
Gelee , 12 Bytes
Probieren Sie es online!
Verwendet den verschachtelten Cross-Ratio-Ansatz der TI-Basic-Lösung von Misha Lavrov . Ausgänge 1 für wahr, 0 für falsch.
Wie es funktioniert
Ich glaube, beide sind golfen ...
quelle
APL (Dyalog Classic) , 25 Byte
Probieren Sie es online!
Der Satz von Ptolemäus, Kredit: Die Antwort von Кирилл Малышев
quelle