В математике циклический четырехугольник - это тот, чьи вершины лежат на одном круге. Другими словами, каждая вершина находится на окружности трех других. Для получения дополнительной информации см. Статью MathWorld .
Примеры
Эти четырехугольники являются циклическими:
Эта трапеция не циклична.
(Изображения из Википедии)
Задача
Учитывая координаты четырех вершин в порядке против часовой стрелки, которые образуют выпуклый четырехугольник, определить, является ли четырехугольник циклическим.
Координаты будут целыми числами (заметьте, однако, что координаты и центр окружности не обязательно являются целыми числами.) Как подразумевается в предыдущем параграфе, никакие три точки не будут коллинеарными и не будут совпадать две.
I / O
Вы можете принять участие в любом разумном формате. В частности, [[x1,x2,x3,x4],[y1,y2,y3,y4]]
, [[x1,y1],[x2,y2],[x3,y3],[x4,y4]]
и комплексные числа все в порядке.
Вывод с использованием любых других непротиворечивых значений для истинного и ложного.
Контрольные примеры
Правда:
[0,0], [314,0], [314,1], [0,1]
[-5,5], [5,-5], [1337,42], [42,1337]
[104, -233], [109, -232], [112, -231], [123, -224]
Ложь:
[0,0], [314,0], [314,100], [0,99]
[31,41],[59,26],[53,58],[0,314]
источник
JavaScript (ES6)
Тестирование углов, 114 байт
Попробуйте онлайн!
Вычисление определителя, 130 байтов
Этот эквивалентен второму ответу Миши Лаврова с повернутой матрицей.
Попробуйте онлайн!
источник
TI-Basic (серия 83), 21 байт
Принимает ввод как список четырех комплексных чисел в
Ans
. Возвращает,1
если четырехугольник циклический и в0
противном случае.ΔList(augment(Ans,Ans
e^(ΔList(ln(
Я приложил все усилия, чтобы проверить, является ли числовая ошибка проблемой, и это не кажется, но если у кого-то есть хорошие тестовые случаи для этого, пожалуйста, дайте мне знать.
источник
JavaScript (ES6) (101 байт)
Принимает ввод как
[x1,y1,x2,y2,x3,y3,x4,y4]
, выводит логическое значение.Попробуйте онлайн!
источник
Желе , 11 байт
Попробуйте онлайн!
Использует детерминантный подход из решения Mathematica Миши Лаврова . Выходы 1 для истины, 0 для ложных.
Как это устроено
Желе , 12 байт
Попробуйте онлайн!
Использует извилистый перекрестный подход из решения TI-Basic Миши Лаврова . Выходы 1 для истины, 0 для ложных.
Как это устроено
Я считаю, что оба пригодны для игры в гольф ...
источник
APL (Dyalog Classic) , 25 байтов
Попробуйте онлайн!
Теорема Птолемея, кредит: ответ Кирилл Малышев
источник