一元二次方程的一般式為ax^2+bx+c=0(a不等於0)
一元二次方程的解法有幾種,最簡便的是公式法,即=b±根號b^2-4ac除以2a
a=
int(
input
("請輸入二次項的係數,如有根號,請輸入無根號的部分"))
b=int(
input
("請輸入一次項的係數,如有根號,請輸入無根號的部分"))
c=int(
input
("請輸入常數項的值,如有根號,請輸入無根號的部分"))
g=int(
input
("二次項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))
h=int(
input
("一次項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))
i=int(
input
("常數項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"
)
先詢問出abc的值, 以及帶不帶根號
j=
(g**(1
/2))
*a k=
(h**(1
/2))
*b l=
(i**(1
/2))
*c
這一步就是分別計算出a,b,c的值(根號預設為二次)
d=
(k**2)
-4*j*l
這一步就相當於上面的b^2=4ac,只不過乘上了乙個根號
if d<
0or g==0:
print
("此方程沒有實數解"
)
這一步就是最基礎的篩選,因為b^2-4ac小於0的話方程是沒有實數解的,所以要先排除。
另外g也不能等於0,因為如果等於0的話就是一元一次方程了,不符合題意。
else
:print
("此方程有實數解"
) e=b+
(d**(1
/2))
f=b-
(d**(1
/2))
a=e/(2
*a) b=f/(2
*a)
排去了無解的式子,就要開始分析有解的式子了,e和f就是b±根號b^2-4ac除以2a上面的分子,
當然,分子分兩種請況,一種是加,另一種是減,加對應e,減對應f
a和b也很好理解,就是分母(除以2a)
if a !=b :
print
("該方程的實數解為x1="
,-a,
"x2="
,-b)
if a==b :
print
("實數解為x1=x2="
,-a or
-b)
最後再分析一下a和b的情況,如果a不等於b,就列印出兩個數的值,等於的話就隨機列印乙個數的值(當然,也可以之列印乙個)
最後的程式:
a=
int(
input
("請輸入二次項的係數,如有根號,請輸入無根號的部分"))
b=int
(input
("請輸入一次項的係數,如有根號,請輸入無根號的部分"))
c=int
(input
("請輸入常數項的值,如有根號,請輸入無根號的部分"))
g=int
(input
("二次項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))
h=int
(input
("一次項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))
i=int
(input
("常數項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))
j=(g**(1
/2))
*ak=
(h**(1
/2))
*bl=
(i**(1
/2))
*cd=
(k**2)
-4*j*l
if d<
0or g==0:
print
("此方程沒有實數解"
)else
:print
("此方程有實數解"
) e=b+
(d**(1
/2))
f=b-
(d**(1
/2))
a=e/(2
*a) b=f/(2
*a)if a !=b :
print
("該方程的實數解為x1="
,-a,
"x2="
,-b)
if a==b :
print
("實數解為x1=x2="
,-a or
-b)
當然,各位學霸也可以不抄答案,而是自己驗算一遍:
a=
int(
input
("請輸入二次項的係數,如有根號,請輸入無根號的部分"))
b=int
(input
("請輸入一次項的係數,如有根號,請輸入無根號的部分"))
c=int
(input
("請輸入常數項的值,如有根號,請輸入無根號的部分"))
g=int
(input
("二次項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))
h=int
(input
("一次項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))
i=int
(input
("常數項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))
j=(g**(1
/2))
*ak=
(h**(1
/2))
*bl=
(i**(1
/2))
*cd=
(k**2)
-4*j*l
if d<
0or g==
0or h==
0or i==0:
print
("此方程沒有實數解"
)else
:print
("此方程有實數解"
) e=b+
(d**(1
/2))
f=b-
(d**(1
/2))
a=e/(2
*a) b=f/(2
*a) z=
int(
input
("請輸入你計算的第乙個值(分子)(不帶根號)(加上的那個)"))
ax=int(
input
("請輸入第乙個值的分母,如沒有,請輸入「1」"))
y=int(
input
("請輸入你計算的第乙個值(根號下)如沒有,請輸入「0」"))
x=input
("請輸入你計算的第乙個值的運算"
)if x==
'加':
diyi=
(z/ax)
+y**(1
/2)if x==
'減':
diyi=
(z/ax)
-y**(1
/2)if diyi==
-a :
print
("你算對了!"
)else
:print
("你算錯了!"
) zz=
int(
input
("請輸入你計算的第二個值(不帶根號)(減去的那個)"))
bx=int(
input
("請輸入第二個值的分母,如沒有,請輸入「1」"))
yy=int(
input
("請輸入你計算的第二個值(根號下)如沒有,請輸入「0」"))
xx=input
("請輸入你計算的第二個值的運算"
)if xx==
'加':
dier=
(zz/bx)
+yy**(1
/2)if xx==
'減':
dier=
(zz/bx)
-yy**(1
/2)if dier==
-b :
print
("你算對了!"
)else
:print
("你算錯了!"
)if a !=b :
print
("該方程的實數解為x1="
,-a,
"x2="
,-b)
if a==b :
print
("實數解為x1=x2="
,-a)
結束 python解一元二次方程序分享
琢磨了一下,自己寫了一段 關於解一元二次方程序。分享給大夥,個人感覺很渣,有不合適的地方還請大家多多指教。usr bin env python coding utf 8 351 01.py 計算一元二次方程序 solving a quadratic equation import math 呼叫標準...
一元二次方程
作 者 a42 覃燕玲 完成日期 2014年 10 月 25 日 版 本 號 v1.0 問題描述 建立乙個程式解平方根 輸入描述 ax 2 bx x 0 a o 程式輸出 平方根 using system using system.collections.generic using system.l...
一元二次方程
一 知識要點 一元二次方程和一元一次方程都是整式方程,它是初中數學的乙個重點內容,也是今後學習數學的基 礎。一元二次方程的一般形式為 ax 2 2為次數,即x的平方 bx c 0,a 0 它是只含乙個未知數,並且未知數的最高次數是2 的整式方程。解一元二次方程的基本思想方法是通過 降次 將它化為兩個...