En mathématiques, un quadrilatère cyclique est un quadrilatère dont tous les sommets se trouvent sur le même cercle. En d'autres termes, chaque sommet se trouve sur le cercle circonscrit des trois autres. Pour plus d'informations, consultez l' article MathWorld .
Exemples
Ces quadrilatères sont cycliques:
Ce trapèze n'est pas cyclique.
(Images de Wikipedia)
Objectif
Étant donné les coordonnées de quatre sommets dans le sens antihoraire qui forment un quadrilatère convexe, déterminez si le quadrilatère est cyclique.
Les coordonnées seront des entiers (notez cependant que les coordonnées du circoncenter et le circumradius ne sont pas nécessairement des entiers.) Comme l'indique le paragraphe précédent, aucun point ne sera colinéaire et aucun coïncident.
E / S
Vous pouvez prendre des entrées en utilisant n'importe quel format raisonnable. En particulier, [[x1,x2,x3,x4],[y1,y2,y3,y4]]
, [[x1,y1],[x2,y2],[x3,y3],[x4,y4]]
et nombres complexes sont tous très bien.
Sortie utilisant des valeurs cohérentes différentes pour vrai et faux.
Cas de test
Vrai:
[0,0], [314,0], [314,1], [0,1]
[-5,5], [5,-5], [1337,42], [42,1337]
[104, -233], [109, -232], [112, -231], [123, -224]
Faux:
[0,0], [314,0], [314,100], [0,99]
[31,41],[59,26],[53,58],[0,314]
la source
JavaScript (ES6)
Test des angles, 114 octets
Essayez-le en ligne!
Calcul d'un déterminant, 130 octets
Celui-ci est équivalent à la 2e réponse de MishaLavrov , avec une matrice tournée.
Essayez-le en ligne!
la source
TI-Basic (série 83), 21 octets
Prend l'entrée sous la forme d'une liste de quatre nombres complexes dans
Ans
. Renvoie1
si le quadrilatère est cyclique et0
sinon.ΔList(augment(Ans,Ans
e^(ΔList(ln(
J'ai fait de mon mieux pour vérifier si l'erreur numérique est un problème, et cela ne semble pas l'être, mais si quelqu'un a de bons cas de test pour cela, veuillez me le faire savoir.
la source
JavaScript (ES6) (101 octets)
Prend l'entrée en tant que
[x1,y1,x2,y2,x3,y3,x4,y4]
, génère un booléen.Essayez-le en ligne!
la source
Gelée , 11 octets
Essayez-le en ligne!
Utilise l'approche déterminante de la solution Mathematica de Misha Lavrov . Sorties 1 pour vrai, 0 pour faux.
Comment ça fonctionne
Gelée , 12 octets
Essayez-le en ligne!
Utilise l'approche de rapport croisé alambiqué de la solution TI-Basic de Misha Lavrov . Sorties 1 pour vrai, 0 pour faux.
Comment ça fonctionne
Je crois que les deux sont jouables au golf ...
la source
APL (Dyalog Classic) , 25 octets
Essayez-le en ligne!
Théorème de Ptolémée, crédit: la réponse de Кирилл Малышев
la source