Giới thiệu
Con người là một loài đáng chú ý, nhưng đôi khi chúng ta có thể rất lúng túng để hiểu đôi khi đặc biệt là đối với máy tính. Đặc biệt, chúng tôi dường như thích viết đa thức theo cách rất phức tạp với các quy tắc dường như tùy tiện.
Chương trình ngắn nhất bạn có thể viết để định dạng một đa thức chính xác bằng cách sử dụng các quy tắc này là gì?
Thử thách
Đầu vào
Danh sách các số nguyên nằm trong khoảng từ 1000 đến 1000 (bao gồm), biểu thị các hệ số của đa thức, với mục cuối cùng là hệ số x ^ 0 (hằng số), lần thứ hai là hệ số của x ^ 1, v.v.
Đầu ra
Một chuỗi đại diện cho đa thức này trong ký hiệu toán học được định dạng chính xác của con người.
Quy tắc:
- Dấu hiệu trên hệ số dẫn đầu chỉ được hiển thị nếu nó âm.
Right: -x^2+3
Wrong: +x^2+3
- Các thành phần có hệ số 0 không được in (trừ trường hợp góc trong đó tất cả các hệ số là 0 *).
Right: x^5-x^2+3
Wrong: x^5+0x^4+0x^3-x^2+0x+3
- Các hệ số
-1
và+1
sẽ được hiển thị mà không có 1, trừ khi chúng là hằng số.
Right: x^5-x^2+1
Wrong: 1x^5-1x^2+1
- Số mũ chỉ được hiển thị nếu nó lớn hơn 1 và biến chỉ được hiển thị nếu số mũ lớn hơn 0.
Right: 3x^3-7x^2+2x+1
Wrong: 3x^3-7x^2+2x^1+1x^0
- * Trường hợp góc: trong khi các giá trị 0 thường dẫn đến việc không in thành phần đó, nếu tất cả các hệ số bằng 0 thì hằng số 0 sẽ được in.
Right: 0
Wrong: 0x+0
Wrong: (nothing)
- Đây là môn đánh gôn, vì vậy người chiến thắng sẽ là chương trình có ít byte nhất.
Ví dụ đầu vào và đầu ra
Input: Output:
[0] 0
[0,0] 0
[0,-1,35,0] -x^2+35x
[5,1,7,-9] 5x^3+x^2+7x-9
[100,0,0,-1] 100x^3-1
[931,21,-11,1] 931x^3+21x^2-11x+1
Tôi mong muốn được nhìn thấy giải pháp của bạn. Chúc vui vẻ!
CHỈNH SỬA:
- Bạn có thể bao quanh các hoạt động bằng khoảng trắng nếu bạn muốn. Vì vậy,
3x+5
và3x + 5
cả hai đều tốt.3x+ 5
và3x +5
không. - Nếu bạn muốn tạo ra các ký tự lũy thừa thực tế (nói bằng Tex) được phép vì nó thậm chí còn gần hơn với cách con người viết.
- Các hệ số phải xuất hiện mà không có bất kỳ số thập phân nào, ví dụ
9x^2
là chính xác,9.0x^2
là không.
1x
-> x
thay thế không thay đổi 21x^2
thành 2x^2
.
3x^2 + 4
so với3x^2+4
?