Latar Belakang
Quaternion adalah sistem bilangan yang memperluas bilangan kompleks. Angka empat memiliki bentuk berikut
di mana adalah bilangan real dan adalah tiga unit angka empat mendasar . Unit memiliki properti berikut:
Perhatikan bahwa perkalian angka empat tidak komutatif .
Tugas
Dengan angka empat yang tidak nyata , hitung setidaknya satu dari akar kuadratnya.
Bagaimana?
Menurut jawaban Math.SE ini , kami dapat mengekspresikan angka empat yang tidak nyata dalam bentuk berikut:
di mana adalah bilangan real dan adalah vektor satuan imajiner dalam bentuk dengan . Apapun seperti memiliki properti , sehingga dapat dilihat sebagai satuan imajiner.
Maka kuadrat terlihat seperti ini:
Sebaliknya, dengan diberi angka empat , kita dapat menemukan akar kuadrat dari dengan menyelesaikan persamaan berikut
yang identik dengan proses menemukan akar kuadrat dari bilangan kompleks.
Perhatikan bahwa bilangan real negatif memiliki banyak akar kueriern yang tak terhingga banyaknya, tetapi angka empat yang tidak nyata hanya memiliki dua akar kuadrat .
Masukan dan keluaran
Input adalah angka empat yang tidak nyata. Anda dapat menganggapnya sebagai empat angka nyata (titik mengambang), dalam urutan dan struktur pilihan apa pun. Non-nyata berarti bahwa setidaknya satu dari adalah nol.
Output adalah satu atau dua angka empat yang, ketika kuadrat, sama dengan input.
Uji kasus
Input (a, b, c, d) => Output (a, b, c, d) rounded to 6 digits
0.0, 1.0, 0.0, 0.0 => 0.707107, 0.707107, 0.000000, 0.000000
1.0, 1.0, 0.0, 0.0 => 1.098684, 0.455090, 0.000000, 0.000000
1.0, -1.0, 1.0, 0.0 => 1.168771, -0.427800, 0.427800, 0.000000
2.0, 0.0, -2.0, -1.0 => 1.581139, 0.000000, -0.632456, -0.316228
1.0, 1.0, 1.0, 1.0 => 1.224745, 0.408248, 0.408248, 0.408248
0.1, 0.2, 0.3, 0.4 => 0.569088, 0.175720, 0.263580, 0.351439
99.0, 0.0, 0.0, 0.1 => 9.949876, 0.000000, 0.000000, 0.005025
Dihasilkan menggunakan skrip Python ini . Hanya satu dari dua jawaban yang benar yang ditentukan untuk setiap kasus uji; yang lainnya adalah keempat nilai dinegasikan.
Kriteria penilaian & menang
Aturan standar kode-golf berlaku. Program atau fungsi terpendek dalam byte di setiap bahasa menang.
a,[b,[c,[d]]]
itu baik-baik saja, jika Anda entah bagaimana dapat menyimpan byte dengan itu :)
a, (b, c, d)
?