Đa thức: a0x^0 + a1x^1 + a2x^2 + a3x^3 + ... + ANX^nCách hiệu quả nhất để tính toán một đa thức
Array: array_a [] = {a0, a1, a2, a3 ... an};
tôi đã viết một hàm để tính toán đa thức này trong Java:
public double cal(double x) {
double y = 0.0;
for (int index = array_a.length - 1; index >= 0; index--) {
y = array_a[index] + y * x;
}
return y;
}
Điều này có vẻ nhanh hơn gấp 5 lần so với vòng lặp y += array_a[index] * Math.Pow(x, index);
Nhưng tôi tự hỏi nếu có một cách tốt hơn để tính toán đa thức này?
** Đối với bất kỳ ai nghĩ đó là phép tính khác: tôi đã thử nghiệm hàm ở trên. Nó làm điều tương tự với y += array_a[index] * Math.Pow(x, index);
và chúng tính toán cùng một kết quả.
Cảm ơn.
Ông sử dụng rằng đa thức bằng a0 + x * (a1 + x * (a2 + ...)) –
@ErwinBolwidt Có, tôi đã làm. Tôi biết nó trông giống như một phép tính khác. Nhưng nó cũng vậy. Bạn có thể kiểm tra. –
Có cách nào tốt hơn không? Nó có vẻ như là cách tốt nhất rồi. Số lượng tính toán tối thiểu. Tại sao cậu lại hỏi? Phần nào bạn không thích? – Andreas