Lý lịch
Đệ tứ là một hệ thống số mở rộng số phức. Một bộ tứ có dạng sau
trong đó là các số thực và là ba đơn vị bậc bốn cơ bản . Các đơn vị có các thuộc tính sau:
Lưu ý rằng phép nhân bậc bốn không giao hoán .
Bài tập
Cho một tứ phân vị không thực , tính toán ít nhất một trong các căn bậc hai của nó.
Làm sao?
Theo câu trả lời Math.SE này , chúng ta có thể diễn đạt bất kỳ quan điểm không thực nào dưới dạng sau:
trong đó là các số thực và là vectơ đơn vị tưởng tượng có dạng với . Bất kỳ cũng có thuộc tính , vì vậy nó có thể được xem là đơn vị tưởng tượng.
Sau đó, hình vuông của trông như thế này:
Ngược lại, cho một quaternion , chúng ta có thể tìm ra căn bậc hai của bằng cách giải các phương trình sau
trùng với quá trình tìm căn bậc hai của một số phức.
Lưu ý rằng một số thực âm có vô số căn bậc hai, nhưng một số tứ không thực chỉ có hai căn bậc hai .
Đầu vào và đầu ra
Đầu vào là một tứ phương không thực. Bạn có thể lấy nó làm bốn số thực (dấu phẩy động), theo bất kỳ thứ tự và cấu trúc nào bạn chọn. Không thực có nghĩa là ít nhất một trong số là khác không.
Đầu ra là một hoặc hai bậc bốn, khi bình phương, bằng với đầu vào.
Các trường hợp thử nghiệm
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
Được tạo bằng tập lệnh Python này . Chỉ một trong hai câu trả lời đúng được chỉ định cho từng trường hợp kiểm tra; khác là tất cả bốn giá trị phủ định.
Ghi điểm & tiêu chí chiến thắng
Luật golf tiêu chuẩn được áp dụng. Chương trình hoặc hàm ngắn nhất tính theo byte trong mỗi ngôn ngữ sẽ thắng.
a,[b,[c,[d]]]
là tốt, nếu bạn bằng cách nào đó có thể lưu byte với nó :)
a, (b, c, d)
?