Hướng dẫn giải của [KHTN - PreTS10 - 2025] Bài 2: EQUA3


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Tác giả: duong3982

Tóm tắt đề bài: Cho phương trình ~ax^3 + bx^2 + cx + d = 0~, với ~a, b, c, d~ là các số nguyên dương và ~\le 1000~. Tìm một nghiệm bất kỳ của phương trình này.

Có thể chứng minh phương trình này luôn có nghiệm âm. Một nghiệm dương sẽ dẫn tới vô lý, vì cả phương trình sẽ lớn hơn ~0~.

Gọi ~f (x) = ax^3 + bx^2 + cx + d~.

Xét đạo hàm ~f' (x) = 3ax^2 + 2bx + c~. Xét ~\triangle = (2b)^2 - 4 \times 3a \times c = 4b^2 - 12ac~.

Nếu ~\triangle \le 0~, thì ~f(x)~ sẽ đồng biến trên ~R~. Vì vậy, ta có thể tìm kiếm nhị phân để tìm ra nghiệm.

Ngược lại, ~f'(x)~ sẽ có hai nghiệm ~x_1, x_2~ với ~x_1 < x_2~. Theo tính chất tam thức bậc hai, ta có ~f'(x) < 0~ với mọi ~x_1 < x < x_2~, hay ~f(x)~ nghịch biến trên ~(x_1, x_2)~. Ngược lại, ~f(x)~ sẽ đồng biến trên ~(-\infty, x_1]~ và ~[x_2, \infty)~. Từ đó, ta có thể chia ba trường hợp và tìm kiếm nhị phân.

Vì sai số cho phép bài này rất nhỏ (~10^{-9}~), nên ta sẽ cần chia đôi miền nghiệm khoảng ~10^6~ lần.

Độ phức tạp: ~O~ (~10^6~).


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.