資源簡介
python中通過對加減乘除和輸出函數的重載,用類實現多項式的加減乘除運算。
代碼片段和文件信息
#coding=utf-8
class?poly:
????def?__init__(selfdata=[]):
????????self.data=data[:]
????def?__del__(self):
????????del?self.data
????????
????def?__add__(selfobj):
????????x=len(self.data)
????????y=len(obj.data)
????????max=x?if?x>y?else?y
????????n1=[]
????????for?n?in?range(max):
????????????n1.append(self.data[n]+obj.data[n])
????????return?poly(n1[:])
????
????def?__sub__(selfobj):
????????x=len(self.data)
????????y=len(obj.data)
????????max=x?if?x>y?else?y
????????n1=[]
????????for?n?in?range(max):
????????????n1.append(self.data[n]-obj.data[n])
????????return?poly(n1[:])
????
????def?__mul__(selfobj):
????????x=len(self.data)
????????y=len(obj.data)
????????max=x?if?x>y?else?y
????????n1=[0]*(max*2-1)
????????for?i?in?range(x):??
????????????for?j?in?range(y):?
????????????????n1[i+j]?=?int(n1[i+j])?+?int(self.data[i]*obj.data[j])????
????????return?poly(n1[:])
????
????def?__truediv__(selfobj):
????????x=len(self.data)
????????y=len(obj.data)
????????if?x ????????????return?poly(self.data)
????????else:
????????????k=x-y
????????????n1=[]
????????????for?i?in?range(x-1y-2-1):
????????????????count=self.data[i]/obj.data[y-1]
????????????????n1.append(count)
????????????????t=y-1
????????????????for?j?in?range(ii-y-1):
????????????????????self.data[j]=self.data[j]-count*obj.data[t]
????????????????????t=t-1
????????????n1.reverse()
????????????n1.append(‘00‘)
????????????n1=n1+self.data
????????????return?poly(n1[:])
????????
????def?__repr__(self):
????????max=len(self.data)
????????family=0
????????for?t?in?range(max):
????????????if?self.data[t]==‘00‘:
????????????????family=1
????????????????break
????????if?family==1:
????????????n2=[]
????????????flag=0
????????????for?i?in?range(t):
????????????????if?self.data[i]:
????????????????????if?i==0:
????????????????????????n2.append(str(self.data[i]))
????????????????????????flag=1
????????????????????else:
????????????????????????if?flag==0:
????????????????????????????if?self.data[i]>0?and?self.data[i]!=1:n2.append(str(self.data[i])+‘X‘+str(i))
????????????????????????????if?self.data[i]<0?and?self.data[i]!=-1:n2.append(str(self.data[i])+‘X‘+str(i))
????????????????????????????if?self.data[i]==1:n2.append(‘X‘+str(i))
????????????????????????????if?self.data[i]==-1:n2.append(‘-‘+‘X‘+str(i))
????????????????????????????flag=1
????????????????????????else:
????????????????????????????if?self.data[i]>0?and?self.data[i]!=1:n2.append(‘+‘+str(self.data[i])+‘X‘+str(i))
????????????????????????????if?self.data[i]<0?and?self.data[i]!=-1:n2.append(str(self.data[i])+‘X‘+str(i))
????????????????????????????if?self.d
評論
共有 條評論