10、多項式A(x)和B(x)(最高維數10維)的相乘、相除、餘數
程式:
#coding:Big5
class poly:
__a = [0]*20 #存放第一個輸入的多項式和運算結果
__b = [0]*20#存放輸入的多項式
__result = [0]*20#結果
def __Input(self,f):
n = input('依序輸入二項式的係數和指數(指數小於10):').split()
for i in range(int(len(n)/2)):
f[ int(n[2*i+1])] = int(n[2*i])
self.__output(f)
def __add(self,a,b): #加法函數
return [a[i]+b[i] for i in range(20)]
def __minus(self,a,b): #減法函數
return [a[i]-b[i] for i in range(20)]
def __mul(self,a,b):
self.__result = [0]*20
for i in range(10):#第一個迴圈:b分別於a[0]到a[9]相乘
for j in range(10): #第二個迴圈:b[j]*a[i]
self.__result[i+j] = int(self.__result[i+j]) + int(a[i]*b[j])
return self.__result
def __output(self,a):#輸出多項式
b = ''
for i in range(20):
if a[i]> 0:
b = b+'+'+str(a[i])+'X^'+str(i)
if a[i]<0:
b = b+"-"+str(-a[i])+'X^'+str(i)
print(b[1::])
def control(self):
print ("二項式運算:\n")
self.__Input(self.__a)
while True:
operator = input('請輸入運算子(結束運算請輸入‘#’)')#self.Input(self.a)
if operator =='#':
return 0
else:
self.__b = [0]*20
self.__Input(self.__b)
self.__a = {'+':self.__add(self.__a,self.__b),'-':self.__minus(self.__a,self.__b),'*':self.__mul(self.__a,self.__b)}.get(operator)
print ('計算結果:',end='')
self.__output(self.__a)
print("10、多項式A(x)和B(x)(最高維數10維)的相乘、相除、餘數")
POLY = poly() #初始化類
POLY.control() #通過選取操作符選擇相應的運算
結果 :
10、多項式A(x)和B(x)(最高維數10維)的相乘、相除、餘數
二項式運算:
依序輸入二項式的係數和指數(指數小於10):1 2 3 4 5 6 7 8 9 9
1X^2+3X^4+5X^6+7X^8+9X^9
請輸入運算子(結束運算請輸入‘#’)*
依序輸入二項式的係數和指數(指數小於10):1 1 3 0
3X^0+1X^1
計算結果:3X^2+1X^3+9X^4+3X^5+15X^6+5X^7+21X^8+34X^9+9X^10
請輸入運算子(結束運算請輸入‘#’)#
>>>
沒有留言:
張貼留言