Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class polinom:
- #инициализация
- def __init__(self,*args):
- self.v = list(args)
- #сумма
- def __add__(self, other):
- if len(self.v) <= len(other.v):
- s = other
- for i in range(len(self.v)):
- s.v[i]+=self.v[i]
- else:
- s = self
- for i in range(len(other.v)):
- s.v[i]+=other.v[i]
- return s
- def __iadd__(self, other):
- for i in range(min(len(self.v), len(other.v))):
- self.v[i]+=other.v[i]
- if len(other.v) > len(self.v):
- for i in range(len(self.v), len(other.v)):
- self.v.append(-other.v[i])
- return self
- #разность
- def __sub__(self, other):
- s = self
- for i in range(min(len(self.v), len(other.v))):
- s.v[i]-=other.v[i]
- if len(other.v) > len(self.v):
- for i in range(len(self.v), len(other.v)):
- s.v.append(-other.v[i])
- return s
- def __isub__(self, other):
- for i in range(min(len(self.v), len(other.v))):
- self.v[i]-=other.v[i]
- if len(other.v) > len(self.v):
- for i in range(len(self.v), len(other.v)):
- self.v.append(-other.v[i])
- return self
- #строчное представление
- def __str__(self):
- k = 0
- s = ''
- for elem in self.v:
- s += ('+' * (elem >= 0) + str(elem) + 'x^' + str(k)) * (elem !=0)
- k += 1
- if s[0] == '+':
- return s[1:]
- else:
- return s
- #значение полинома от x
- def Xv(self, x):
- s = 0
- k = 0
- for elem in self.v:
- s+=(elem * x**k)
- k+=1
- return s
- n = polinom(-1,-2,-3,-4)
- n += polinom(1,2,3,4,5)
- print((n), n.Xv(1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement