b603: 拋物線方程式
輸入
四個整數 x1 y1 x2 y2 前兩個為頂點座標(x1, y1),後兩個為拋物線上一點座標 (x2, y2)
1 2 0 5
1 9 18 60
輸出
輸出 ay = bx^2 + cx + d 的式子,a 為正整數,b, c, d 為整數,a, b, c, d 為 1 時不必省略,等號和加號前後有空白
1y = 3x^2 + -6x + 5
17y = 3x^2 + -6x + 156
import math
A=[0]*4
#---------------------------------------------
print('-------b603: 拋物線方程式-------')
while True:
try:
A = [int(i) for i in input('\n輸入4个正整数) : ').split()] # 將輸入的文字轉換成數字串列
x1=int (A[0])
x2=int (A[1])
y1=int (A[2])
y2=int (A[3])
print (x1,x2,y1,y2)
a = (y1 - x1) * (y1 - x1)
b = (y2 - x2)
g = math.gcd(a, b)
b = b/g
a = a/g
c = -2 * b * x1
d = b * x1 * x1 + a * x2
print (a,b,c,d)
e='{m}y = {n}x^2 + {o}x + {p}'
print(e.format(m=a, n=b,o=c,p=d))
except:
break
>>> %Run -c $EDITOR_CONTENT
-------b603: 拋物線方程式-------
輸入4个正整数) : 1 2 0 5
1 2 0 5
1.0 3.0 -6.0 5.0
1.0y = 3.0x^2 + -6.0x + 5.0
輸入4个正整数) : 1 9 18 60
1 9 18 60
17.0 3.0 -6.0 156.0
17.0y = 3.0x^2 + -6.0x + 156.0
輸入4个正整数) :
>>>
沒有留言:
張貼留言