Вступление
Представьте, что вы находитесь в двухмерной декартовой плоскости и хотите определить свою позицию на ней. Вы знаете 3 точки на этой плоскости и ваше расстояние до каждой из них. Хотя из этого всегда можно рассчитать свою позицию, сделать это в своей голове довольно сложно. Таким образом, вы решили написать программу для этого.
Соревнование
Учитывая 3 балла и ваше расстояние до них, выведите свои координаты.
- Ввод и вывод могут быть в любом удобном формате, включая использование сложных, а не вещественных чисел. Укажите в своем ответе, какой формат вы используете.
- Вы всегда получите ровно 3 разных очка с их расстоянием до вас.
- Координаты и расстояния будут плавать с произвольной точностью. Ваш вывод должен быть правильным с точностью до 3 знаков после запятой. Округление зависит от вас. Пожалуйста, уточните в своем ответе.
- Вы можете предположить, что эти три точки не коллинеарны, поэтому всегда найдется уникальное решение.
- Вам не разрешено брутфорс решения.
- Вы не можете использовать любые встроенные функции, которые упрощают эту конкретную проблему. Хотя встроенные функции для векторных норм и т. Д. Допускаются.
Подсказка для начала:
Подумайте о круге вокруг каждой из этих трех точек с их расстоянием до вас в качестве радиуса.
правила
- Функция или полная программа разрешены.
- Правила по умолчанию для ввода / вывода.
- Применяются стандартные лазейки .
- Это код-гольф , поэтому выигрывает меньшее количество байт. Tiebreaker является более ранним представлением.
Контрольные примеры
Формат ввода для одной точки здесь [[x,y],d]
с x
и y
быть координаты и d
быть расстояние до этой точки. 3 из этих пунктов расположены в списке. Вывод будет x
и тогда y
в список.
[[[1, 2], 1.414], [[1, 1], 2.236], [[2, 2], 1.0]] -> [2, 3] [[[24.234, -13.902], 31.46], [[12.3242, 234.12], 229.953], [[23.983, 0.321], 25.572]] -> [-1.234, 4.567] [[[973.23, -123.221], 1398.016], [[-12.123, -98.001], 990.537], [[-176.92, 0], 912.087]] -> [12.345, 892.234]
С помощью этой программы Pyth вы можете создавать дополнительные тестовые случаи . Расположение идет в первой строке ввода, а 3 точки находятся в следующих 3 строках.
Удачного кодирования!
solve
(учитывая три круговых уравнения) тривиализирующей проблему? Я думал, что это так, но если ты в порядке с такими вещами, я пойду и опубликую это.