Вступ
Уявіть, що ви перебуваєте на двовимірній декартовій площині і хочете визначити своє положення на ній. Ви знаєте 3 точки на цій площині та відстань до кожної з них. Хоча завжди можна з цього розрахувати своє становище, робити це в голові досить важко. Тож ви вирішили написати програму для цього.
Змагання
Враховуючи 3 бали та відстань до них, виведіть кординати своєї позиції.
- Введення та вихід можуть бути у будь-якому зручному форматі, включаючи використання складних замість реальних цифр. Будь ласка, уточніть у своїй відповіді, який формат ви використовуєте.
- Ви завжди отримаєте рівно 3 чіткі точки, відстань до вас.
- Координати та відстані будуть плавати з довільною точністю. Вихід повинен бути правильним до 3 знаків після коми. Округлення залежить від вас. Будь ласка, уточніть у своїй відповіді.
- Ви можете припустити, що три точки не є колінеарними, тому завжди знайдеться унікальне рішення.
- Вам не дозволяється жорстоко застосовувати рішення.
- Ви не можете використовувати будь-які вбудовані елементи, які б вирішили цю проблему. Однак побудовані для векторних норм тощо дозволяються.
Підказка для початку:
Подумайте про коло навколо кожної з цих 3 точок, відстань до вас як радіус.
Правила
- Функція або повна програма дозволена.
- Правила вводу / виводу за замовчуванням .
- Застосовуються стандартні лазівки .
- Це кодовий гольф , тому виграє найменший байт. Tiereaker є більш раннім поданням.
Тестові справи
Формат введення для однієї точки тут [[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
(дано три рівняння кола) тривілізує задачу? Я думав, що це так, але якщо ти добре з такими речами, я продовжу його та опублікую.