Wprowadzenie
Wyobraź sobie, że jesteś na dwuwymiarowej płaszczyźnie kartezjańskiej i chcesz ustalić na niej swoją pozycję. Znasz 3 punkty na tym samolocie i odległość do każdego z nich. Chociaż zawsze można na tej podstawie obliczyć swoją pozycję, robienie tego w głowie jest dość trudne. Więc decydujesz się napisać do tego program.
Wyzwanie
Biorąc pod uwagę 3 punkty i odległość do nich, wypisz cordinata swojej pozycji.
- Dane wejściowe i wyjściowe mogą być w dowolnym dogodnym formacie, w tym przy użyciu liczb złożonych zamiast liczb rzeczywistych. W odpowiedzi proszę wyjaśnić, jakiego formatu używasz.
- Zawsze otrzymasz dokładnie 3 różne punkty wraz z odległością od Ciebie.
- Współrzędne i odległości będą zmienne z dowolną precyzją. Wynik musi być poprawny do 3 miejsc po przecinku. Zaokrąglanie zależy od ciebie. Proszę wyjaśnić w swojej odpowiedzi.
- Możesz założyć, że trzy punkty nie są współliniowe, więc zawsze będzie unikalne rozwiązanie.
- Nie możesz brutalnie wymusić rozwiązania.
- Nie możesz używać żadnych wbudowanych, które trywializują ten konkretny problem. Wbudowane normy wektorów itp. Są jednak dozwolone.
Wskazówka, aby rozpocząć:
Pomyśl o okręgu wokół każdego z tych 3 punktów, którego odległość od ciebie jest promieniem.
Zasady
- Dozwolona funkcja lub pełny program.
- Domyślne reguły wejścia / wyjścia.
- Obowiązują standardowe luki .
- To jest golf golfowy , więc wygrywa najmniej bajtów. Tiebreaker to wcześniejsze zgłoszenie.
Przypadki testowe
Format wejściowy dla jednego punktu tutaj jest [[x,y],d]
z x
i y
bycia współrzędnych i d
jest dystans do tego punktu. 3 z tych punktów są ułożone na liście. Wyjście będzie x
, a następnie y
na liście.
[[[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]
Za pomocą tego programu Pyth można generować dodatkowe przypadki testowe . Lokalizacja przebiega w pierwszym wierszu wejścia, a 3 punkty znajdują się w kolejnych 3 wierszach.
Happy Coding!
solve
(biorąc pod uwagę trzy równania kół) problem jest trywialny? Myślałem, że tak, ale jeśli nie masz nic przeciwko takim rzeczom, napiszę to.