Một vị trí hệ số ứng với một bậc
Đa thức bậc k được biểu diễn bởi k+1 hệ số từ bậc cao xuống thấp. Ví dụ [3,0,−2] có ba vị trí:
| Vị trí | Hệ số | Hạng tử |
|---|---|---|
| 0 | 3 | $3x^2$ |
| 1 | 0 | $0x$ |
| 2 | −2 | $-2$ |
Đa thức là $3x^2-2$. Hạng tử hệ số 0 được bỏ khi in, nhưng vị trí ấy vẫn có trong dãy hệ số để giữ đúng số mũ. Dãy [0,3,−2] chỉ cho $3x-2$, không có bậc 2; khi yêu cầu bậc 2 phải loại dãy có hệ số đầu 0.
Đổi dãy hệ số thành biểu thức dễ đọc
```python
def format_polynomial(coefs):
terms = []
degree = len(coefs) - 1
for i, value in enumerate(coefs):
if value == 0:
continue
power = degree - i
magnitude = format(value, 'f').lstrip('-')
if '.' in magnitude:
magnitude = magnitude.rstrip('0').rstrip('.')
coefficient = '' if power > 0 and value in (1, -1) else magnitude
variable = '' if power == 0 else ('x' if power == 1 else f'x^{power}')
sign = (' - ' if terms else '-') if value < 0 else (' + ' if terms else '')
terms.append(sign + coefficient + variable)
return ''.join(terms) if terms else '0'
```
power=len(coefs)−1−i là số mũ của hệ số ở vị trí i. Bỏ hạng tử có value==0; còn lại dùng dấu phù hợp và biến x theo số mũ. Hệ số 1 hoặc −1 ở hạng tử có x được viết gọn thành x hoặc −x; ở hạng tử hằng vẫn in 1 hoặc −1.
Mã tải đọc số nguyên/thập phân theo giá trị số. Vì vậy 1 và 1.0 là cùng giá trị,0.0 vẫn là 0 khi kiểm bậc và tránh kết quả trùng. Hàm in giữ các chữ số thập phân của hệ số, không đổi hệ số chỉ vì cách nhập khác nhau.
Bài luyện
Dãy [3,0,−2] theo thứ tự bậc cao xuống thấp biểu diễn gì?
Ba hệ số lần lượt thuộc bậc 2,1,0.
Đã làm mất vị trí hệ số 0 của bậc 1.
Hệ số cuối là −2, không phải 2.
Đã đảo vị trí các hệ số.
Lời giải
Độ dài 3 ứng với các số mũ 2,1,0. Thay hệ số nhận 3x²+0x−2, viết gọn 3x²−2.
Bài luyện
Vì sao [0,3,−2] không đáp ứng yêu cầu đa thức bậc 2?
Bậc 2 dùng ba vị trí hệ số nhưng vị trí đầu phải khác 0.
Bậc cao nhất phải có hệ số khác 0.
Hệ số âm vẫn được phép.
Hằng số vẫn là một hệ số của đa thức.
Lời giải
Hạng tử 0x² không góp vào đa thức. Còn 3x−2 có bậc 1, nên phải loại khi mục tiêu là đúng bậc 2.
Bài luyện
Khi nhập hệ số 1 và 1.0, nên xem đây là gì khi tránh đa thức trùng?
Cả hai đều bằng 1.
Đây là hệ số, không phải tên biến.
Cách ghi số không làm đổi giá trị.
Đa thức phải được phân biệt theo giá trị hệ số.
Lời giải
1 và 1.0 có cùng giá trị. Nếu chúng ở hai vị trí nhập khác nhau thì vẫn cần dùng đủ hai lần xuất hiện, nhưng không xuất lại cùng một dãy hệ số chỉ vì đổi cách ghi của số 1.
Đang học