Thử thách
Thách thức là viết một chương trình lấy một số dươnga
và một số khác khôngb
và đầu ra a^b
(tăng lên sức mạnh b). Bạn chỉ có thể sử dụng + - * / abs()
như các hàm toán tử / toán tử. Chúng chỉ có thể được áp dụng cho các giá trị vô hướng, nhưng không áp dụng cho toàn bộ danh sách hoặc mảng.
Ví dụ:
1.234 ^ 5.678 = 3.29980
4.5 ^ 4.5 = 869.874
4.5 ^-4.5 = 0.00114959
Có liên quan: http://xkcd.com/217/
Chi tiết
Bạn có thể viết một hàm hoặc một cấu trúc tương tự để sử dụng trong bàn điều khiển. Nếu bạn không thể sử dụng đầu vào giao diện điều khiển, bạn có thể giả sử rằng cả hai số được lưu trong các biến và ouptut thông qua đầu ra tiêu chuẩn hoặc ghi vào một tệp. Đầu ra phải chính xác đến ít nhất 4 chữ số có nghĩa. Bạn có thể giả định rằng cả hai a
và b
đều khác. Thời gian chạy hơn 1 phút không đáng kể là không thể chấp nhận được. Số byte ít nhất sẽ giành chiến thắng. Hãy giải thích chương trình của bạn và thuật toán của bạn.
EDIT: Chỉ có cơ sở tích cực phải được xem xét. Bạn có thể giả định a>0
. Xin lưu ý rằng cả hai số không phải là số nguyên !!!
-0.5 ** 0.5
phải là gì?