introduzione
Immagina di essere su un piano cartesiano bidimensionale e di voler determinare la tua posizione su di esso. Conosci 3 punti su quell'aereo e la tua distanza da ognuno di essi. Mentre è sempre possibile calcolare la tua posizione da quello, farlo nella tua testa è piuttosto difficile. Quindi decidi di scrivere un programma per quello.
La sfida
Dato 3 punti e la distanza da loro, emetti le coordinate della tua posizione.
- L'input e l'output possono essere in qualsiasi formato conveniente, incluso l'uso di numeri complessi anziché reali. Si prega di chiarire nella risposta quale formato si utilizza.
- Otterrai sempre esattamente 3 punti distinti con la loro distanza.
- Le coordinate e le distanze saranno galleggianti con precisione arbitraria. L'output deve essere corretto con 3 cifre decimali. L'arrotondamento dipende da te. Si prega di chiarire nella risposta.
- Puoi presumere che i tre punti non siano collineari, quindi ci sarà sempre una soluzione unica.
- Non ti è permesso di rinforzare la soluzione.
- Non è possibile utilizzare alcun builtin che banalizzi questo particolare problema. Tuttavia, sono consentiti i builtin per le norme vettoriali, ecc.
Suggerimento per iniziare:
Pensa a un cerchio attorno a ciascuno di quei 3 punti con la loro distanza come raggio.
Regole
- Funzione o programma completo consentiti.
- Regole predefinite per input / output.
- Si applicano scappatoie standard .
- Questo è code-golf , quindi vince il conteggio dei byte più basso. Tiebreaker è una presentazione precedente.
Casi test
Il formato di input per un punto qui è [[x,y],d]
con x
ed y
essendo le coordinate ed d
essendo la distanza da questo punto. I 3 di questi punti sono disposti in un elenco. L'output sarà x
e quindi y
in un elenco.
[[[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]
Puoi generare ulteriori casi di test con questo programma Pyth . La posizione va sulla prima riga dell'ingresso e i 3 punti si trovano sulle 3 righe seguenti.
Buona programmazione!
solve
(date tre equazioni circolari) è banalizzare il problema? Ho pensato che lo fosse, ma se stai bene con queste cose andrò avanti e pubblicherò.