pengantar
Bayangkan Anda berada di pesawat kartesius dua dimensi dan ingin menentukan posisi Anda di atasnya. Anda tahu 3 poin di pesawat itu dan jarak Anda ke masing-masing. Meskipun selalu mungkin untuk menghitung posisi Anda dari itu, melakukan hal itu di kepala Anda cukup sulit. Jadi Anda memutuskan untuk menulis program untuk itu.
Tantangan
Diberikan 3 poin dan jarak Anda dengan mereka, output kordinat posisi Anda.
- Input dan output mungkin dalam format apa pun yang nyaman, termasuk menggunakan kompleks bukan bilangan real. Harap jelaskan dalam jawaban Anda format mana yang Anda gunakan.
- Anda akan selalu mendapatkan 3 poin berbeda dengan jarak mereka ke Anda.
- Koordinat dan jarak akan mengapung dengan presisi sewenang-wenang. Output Anda harus benar hingga 3 tempat desimal. Pembulatan terserah Anda. Harap jelaskan jawaban Anda.
- Anda mungkin berasumsi bahwa ketiga poin tersebut bukan collinear, jadi akan selalu ada solusi unik.
- Anda tidak boleh memaksa solusi.
- Anda tidak boleh menggunakan bawaan apa pun yang meremehkan masalah khusus ini. Dibangun untuk norma-norma vektor, dll diperbolehkan.
Petunjuk untuk memulai:
Pikirkan tentang lingkaran di sekitar masing-masing 3 titik dengan jarak mereka kepada Anda sebagai jari-jari.
Aturan
- Fungsi atau program lengkap diizinkan.
- Aturan default untuk input / output.
- Celah standar berlaku.
- Ini adalah kode-golf , sehingga byte-count terendah akan menang. Tiebreak adalah pengiriman sebelumnya.
Uji kasus
Format input untuk satu titik di sini adalah [[x,y],d]
dengan x
dan y
menjadi koordinat dan d
menjadi jarak ke titik ini. 3 poin tersebut diatur dalam daftar. Output akan x
dan kemudian y
dalam daftar.
[[[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]
Anda dapat membuat test case tambahan dengan program Pyth ini . Lokasi berada pada baris pertama input dan 3 poin berada pada 3 baris berikut.
Selamat Coding!
solve
(diberi persamaan tiga lingkaran) meremehkan masalah? Saya pikir itu, tetapi jika Anda baik-baik saja dengan hal-hal seperti itu saya akan pergi dan mempostingnya.