Em matemática, um quadrilátero cíclico é aquele cujos vértices estão todos no mesmo círculo. Em outras palavras, todo vértice está no circulo dos outros três. Para mais informações, consulte o artigo MathWorld .
Exemplos
Estes quadriláteros são cíclicos:
Este trapézio não é cíclico.
(Imagens da Wikipedia)
Objetivo
Dadas as coordenadas de quatro vértices na ordem anti-horária que formam um quadrilátero convexo, determine se o quadrilátero é cíclico.
As coordenadas serão inteiras (observe, no entanto, que as coordenadas do circuncentro e o perímetro do raio não são necessariamente inteiros.) Como está implícito no parágrafo anterior, três pontos não serão co-lineares e dois coincidentes.
I / O
Você pode receber informações usando qualquer formato razoável. Em particular, [[x1,x2,x3,x4],[y1,y2,y3,y4]]
, [[x1,y1],[x2,y2],[x3,y3],[x4,y4]]
e números complexos são todos muito bem.
Saída usando valores consistentes diferentes para verdadeiro e falso.
Casos de teste
Verdade:
[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]
fonte
JavaScript (ES6)
Testando os ângulos, 114 bytes
Experimente online!
Computando um determinante, 130 bytes
Essa é equivalente à 2ª resposta de MishaLavrov , com uma matriz rotacionada.
Experimente online!
fonte
TI-Basic (série 83), 21 bytes
Recebe a entrada como uma lista de quatro números complexos em
Ans
. Retorna1
se o quadrilátero for cíclico ou0
não.ΔList(augment(Ans,Ans
e^(ΔList(ln(
Fiz o meu melhor para verificar se o erro numérico é um problema e não parece ser, mas se alguém tiver bons casos de teste para isso, informe-me.
fonte
JavaScript (ES6) (101 bytes)
Pega entrada como
[x1,y1,x2,y2,x3,y3,x4,y4]
, gera um booleano.Experimente online!
fonte
Gelatina , 11 bytes
Experimente online!
Usa a abordagem determinante da solução Mathematica de Misha Lavrov . Saídas 1 para verdadeiro, 0 para falso.
Como funciona
Gelatina , 12 bytes
Experimente online!
Utiliza a abordagem de razão cruzada complicada da solução TI-Basic da Misha Lavrov . Saídas 1 para verdadeiro, 0 para falso.
Como funciona
Eu acredito que ambos são jogáveis ...
fonte
APL (Dyalog Classic) , 25 bytes
Experimente online!
Teorema de Ptolomeu, crédito: resposta de Кирилл Малышев
fonte