En matemáticas, un cuadrilátero cíclico es aquel cuyos vértices se encuentran en el mismo círculo. En otras palabras, cada vértice está en la circunferencia de los otros tres. Para obtener más información, consulte el artículo de MathWorld .
Ejemplos
Estos cuadriláteros son cíclicos:
Este trapecio no es cíclico.
(Imágenes de Wikipedia)
Objetivo
Dadas las coordenadas de cuatro vértices en el sentido contrario a las agujas del reloj que forman un cuadrilátero convexo, determine si el cuadrilátero es cíclico.
Las coordenadas serán números enteros (tenga en cuenta, sin embargo, que las coordenadas del circuncentro y el circunradio no son necesariamente números enteros). Como se indica en el párrafo anterior, no habrá tres puntos co-lineales ni dos coincidentes.
I / O
Puede recibir información utilizando cualquier formato razonable. En particular, [[x1,x2,x3,x4],[y1,y2,y3,y4]]
, [[x1,y1],[x2,y2],[x3,y3],[x4,y4]]
y los números complejos son todos bien.
Salida utilizando cualquier valor consistente diferente para verdadero y falso.
Casos de prueba
Cierto:
[0,0], [314,0], [314,1], [0,1]
[-5,5], [5,-5], [1337,42], [42,1337]
[104, -233], [109, -232], [112, -231], [123, -224]
Falso:
[0,0], [314,0], [314,100], [0,99]
[31,41],[59,26],[53,58],[0,314]
fuente
JavaScript (ES6)
Probar los ángulos, 114 bytes
Pruébalo en línea!
Calculando un determinante, 130 bytes
Toma la entrada como e en la sintaxis de curry. Devuelve un valor booleano.[x1,x2,x3,x4] [y1,y2,y3,y4]
Este es equivalente a la segunda respuesta de MishaLavrov , con una matriz rotada.
Pruébalo en línea!
fuente
TI-Basic (serie 83), 21 bytes
Toma información como una lista de cuatro números complejos
Ans
. Devuelve1
si el cuadrilátero es cíclico y de lo0
contrario.ΔList(augment(Ans,Ans
calcula las diferencias (y algunos términos más redundantes),e^(ΔList(ln(
de eso calcula las relaciones .Hice todo lo posible para verificar si el error numérico es un problema, y no parece serlo, pero si alguien tiene buenos casos de prueba para eso, hágamelo saber.
fuente
JavaScript (ES6) (101 bytes)
Toma la entrada como
[x1,y1,x2,y2,x3,y3,x4,y4]
, emite un booleano.Pruébalo en línea!
fuente
Jalea , 11 bytes
Pruébalo en línea!
Utiliza el enfoque determinante de la solución Mathematica de Misha Lavrov . Salidas 1 para verdadero, 0 para falso.
Cómo funciona
Jalea , 12 bytes
Pruébalo en línea!
Utiliza el enfoque de relación cruzada enrevesada de la solución TI-Basic de Misha Lavrov . Salidas 1 para verdadero, 0 para falso.
Cómo funciona
Creo que ambos son golfables ...
fuente
APL (Dyalog Classic) , 25 bytes
Pruébalo en línea!
Teorema de Ptolomeo, crédito: respuesta de Кирилл Малышев
fuente