Dengan koordinat tiga titik Cartesian pada sebuah pesawat, temukan persamaan lingkaran melalui semuanya. Tiga poin tidak akan berada di garis lurus.
Setiap baris input ke program Anda akan berisi koordinat x
dan y
tiga titik, dalam urutan A(x),A(y),B(x),B(y),C(x),C(y)
. Koordinat ini akan menjadi bilangan real kurang dari 1.000.000 yang dipisahkan satu sama lain oleh ruang.
Solusinya harus dicetak sebagai persamaan bentuk (x-h)^2 + (y-k)^2 = r^2
. Nilai untuk h
, k
, r
harus dicetak dengan tiga digit setelah titik desimal. Tanda plus dan minus dalam persamaan harus diubah sesuai kebutuhan untuk menghindari beberapa tanda sebelum angka.
Sample Inputs
7.0 -5.0 -1.0 1.0 0.0 -6.0
1.0 7.0 8.0 6.0 7.0 -2.0
Sample Outputs
(x - 3.000)^2 + (y + 2.000)^2 = 5.000^2
(x - 3.921)^2 + (y - 2.447)^2 = 5.409^2
Jawaban:
Python,
176189 karakterMelakukan semua pekerjaannya di pesawat kompleks. Saya menghitung matematika dari bagian bawah halaman ini .
-c
adalah pusat lingkaran.sumber
C # - 490
Ini menemukan 2 garis antara AB dan BC. Kemudian ia menemukan di mana dua bagian dari 2 garis itu bersilangan. (Yang saya perhatikan adalah apa yang @PeterTaylor katakan dalam komentarnya ke @PeterOfTheCorn.)
sumber
Ruby, 192 karakter
Contoh penggunaan:
sumber
x
,y
danr
dalam panggilan ke%
akan membantu, jika memungkinkan.Wolfram Alpha (27)
Saya katakan, gunakan alat yang tepat untuk pekerjaan itu.
Contoh di sini .
sumber
Javascript (299)
Satu-satunya cara yang dapat saya pikirkan untuk menyelesaikan ini adalah secara aljabar menyelesaikan tiga persamaan untuk tiga yang tidak diketahui untuk menemukan h, k, dan r.
Contoh I / O:
7.0 -5.0 -1.0 1.0 0.0 -6.0
->(x-3)²+(y--2)²=5²
1.0 7.0 8.0 6.0 7.0 -2.0
->(x-3.9210526315789473)²+(y-2.4473684210526314)² =5.409159155551175²
Satu-satunya bug yang saya lihat adalah bahwa jika h atau k negatif, ia mengeluarkan
--
bukan+
.sumber