codeves天梯 解一元三次方程

2021-07-26 17:35:36 字數 1005 閱讀 5765

有形如:

ax3+bx2+cx+d=0  

這樣的乙個一元三次方程。給出該方程中各項的係數(a,

b,c,

d  均為實數

),並約定該方程存在三個不同實根

(根的範圍在

-100

至100之間)

,且根與根之差的絕對值

>=1

。要求由小到大依次在同一行輸出這三個實根

(根與根之間留有空格

),並精確到小數點後2位。

f(x)=0

,若存在2個數

x1和x2,且

x1,f(x1)*f(x2)<0

,則在(x1

,x2)

之間一定有乙個 根。

分析:其實很暴力,就是用分治思想。將10000個數二分查詢答案,資料不難,時間還是過得去==。值得注意的倒是精度問題(錯了兩次都是精度都被卡爆了,下面這種寫法是比較推薦的保留小數,基本上不會出精度問題)

const

e=1e-3;

var a,b,c,d,l,r,m:extended;

i,j:longint;

function f(x:extended):extended;

begin

f:=a*x*x*x+b*x*x+c*x+d;

end;

begin

readln(a,b,c,d);

for i:=-100 to 100 do

begin

if f(i)*f(i-1)<0 then

begin

l:=i-1;

r:=i;

repeat

m:=(l+r)/2;

if f(m)*f(l)<0 then

r:=m

else

if f(m)=0 then

begin

l:=m;

break;

end else

l:=m;

until abs(l-r)

一元三次方程重根判別式 一元三次方程快速解法

一元三次方程快速解法2019 09 23 10 25 31文 陶凱月 一元三次方程沒有快速解法,用根號解一元三次方程,有著名的卡爾丹公式,但使用卡爾丹公式解題比較複雜,缺乏直觀性。範盛金推導出一套直接用a b c d表達的較簡明形式的一元三次方程的一般式新求根公式 盛金公式。盛金定理 當b 0,c ...

2031 求一元三次方程的解

time limit 3 second memory limit 2 mb 有形如ax 3 bx 2 cx d 0的乙個一元三次方程。給出該方程中各項的係數 a,b,c,d均為實數 並約定該方程存在三個不同實根 根的範圍在 100至100之間 且根與根之差的絕對值 1。要求由小到大依次在同一行輸出這...

一元三次方程求解

有形如 ax 3 bx 2 cx d 0這樣的乙個一元三次方程。給出該方程中各項的係數 a,b,c,d均為實數 並約定該方程存在三個不同實根 根的範圍在 100至100之間 且根與根之差的絕對值 1。要求由小到大依次在同一行輸出這三個實根 根與根之間留有空格 並精確到小數點後2位。輸入有多行測試資料...