急求 python 使用class定义多项式P(x)=a0=a1x+a2x^2……anx^n 使用__init__()产生一个列表记录a的值
答案:1 悬赏:50
解决时间 2021-01-25 03:52
- 提问者网友:活着好累
- 2021-01-24 18:50
急求 python 使用class定义多项式P(x)=a0=a1x+a2x^2……anx^n 使用__init__()产生一个列表记录a的值
最佳答案
- 二级知识专家网友:渊鱼
- 2021-01-24 20:26
pip install futurefrom __future__ import division, unicode_literals, print_function
from future.utils import python_2_unicode_compatible
import re
@python_2_unicode_compatible
class P(object):
def __init__(self,a):
self.a=a
def __add__(self,p):
a,b=self.a, p.a
if len(self.a) a,b=b,a
for i in range(len(b)):
a[i]+=b[i]
return P(a)
def der(self):
a=[]
for i,j in enumerate(self.a,1):
a.append(i*j)
return self._getStr('dP(x)/dx = ',a)
def ind(self):
a=[]
for i,j in enumerate(self.a,1):
a.append(i/j)
return self._getStr('P(x)dx = ',['c']+a)
def _getStr(self,prefix='P(x) = ',a=None):
if not a:
a=self.a
s=''
for i,j in enumerate(a):
if j:
if 0==i:
s=j
else:
if not s:
s='{}x^{}'.format(j,i)
else:
s='{} + {}x^{}'.format(s,j,i)
if not s:
s='0'
s=re.sub(r'x^1 ','x ',s)
s=re.sub(r'^1x| 1x',' x',s)
return '{}{}'.format(prefix,s)
def __str__(self):
return self._getStr()
def main():
p1=P([1,2,3])
p2=P([0,1,0,1,6,77,8])
print('p1:',p1)
print('p2:',p2)
print('p1+p2:',p1+p2)
print('derivative of p1:',p1.der())
print('indefinite of p2:',p2.ind())
if __name__=='__main__':
main()
from future.utils import python_2_unicode_compatible
import re
@python_2_unicode_compatible
class P(object):
def __init__(self,a):
self.a=a
def __add__(self,p):
a,b=self.a, p.a
if len(self.a)
for i in range(len(b)):
a[i]+=b[i]
return P(a)
def der(self):
a=[]
for i,j in enumerate(self.a,1):
a.append(i*j)
return self._getStr('dP(x)/dx = ',a)
def ind(self):
a=[]
for i,j in enumerate(self.a,1):
a.append(i/j)
return self._getStr('P(x)dx = ',['c']+a)
def _getStr(self,prefix='P(x) = ',a=None):
if not a:
a=self.a
s=''
for i,j in enumerate(a):
if j:
if 0==i:
s=j
else:
if not s:
s='{}x^{}'.format(j,i)
else:
s='{} + {}x^{}'.format(s,j,i)
if not s:
s='0'
s=re.sub(r'x^1 ','x ',s)
s=re.sub(r'^1x| 1x',' x',s)
return '{}{}'.format(prefix,s)
def __str__(self):
return self._getStr()
def main():
p1=P([1,2,3])
p2=P([0,1,0,1,6,77,8])
print('p1:',p1)
print('p2:',p2)
print('p1+p2:',p1+p2)
print('derivative of p1:',p1.der())
print('indefinite of p2:',p2.ind())
if __name__=='__main__':
main()
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯