Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python tính giá trị đa thức

Khi cần tính giá trị đa thức, ta dùng vòng lặp đơn giản kết hợp toán tử *.

Ví dụ

my_list = [3, -6, 3, -1, 23, -11, 0, -8]
print("Danh sách là:")
print(my_list)

x = 3
my_list_length = len(my_list)
my_result = 0

for i in range(my_list_length):
    my_sum = my_list[i]
    for j in range(my_list_length - i - 1):
        my_sum = my_sum * x
    my_result = my_result + my_sum

print("Kết quả là:")
print(my_result)

Kết quả đầu ra

Danh sách là:
[3, -6, 3, -1, 23, -11, 0, -8]
Kết quả là:
3349

Giải thích

  • Danh sách hệ số đa thức (từ bậc cao đến thấp): 3x⁷ - 6x⁶ + 3x⁵ - x⁴ + 23x³ - 11x² + 0x - 8.
  • Gán x = 3.
  • Khởi tạo kết quả = 0.
  • Vòng lặp ngoài duyệt từng hệ số.
  • Vòng lặp trong nhân hệ số với x đủ số lần theo bậc.
  • Cộng dồn vào kết quả.

Cách hiệu quả hơn (Horner's method):

def eval_poly(coeffs, x):
    result = 0
    for c in coeffs:
        result = result * x + c
    return result

print(eval_poly([3, -6, 3, -1, 23, -11, 0, -8], 3))  # 3349

Hoặc dùng NumPy: np.polyval(coeffs, x).