Advertisement
Guest User

Untitled

a guest
May 21st, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. class polinom:
  2. #инициализация
  3. def __init__(self,*args):
  4. self.v = list(args)
  5. #сумма
  6. def __add__(self, other):
  7. if len(self.v) <= len(other.v):
  8. s = other
  9. for i in range(len(self.v)):
  10. s.v[i]+=self.v[i]
  11. else:
  12. s = self
  13. for i in range(len(other.v)):
  14. s.v[i]+=other.v[i]
  15. return s
  16. def __iadd__(self, other):
  17. for i in range(min(len(self.v), len(other.v))):
  18. self.v[i]+=other.v[i]
  19. if len(other.v) > len(self.v):
  20. for i in range(len(self.v), len(other.v)):
  21. self.v.append(-other.v[i])
  22. return self
  23. #разность
  24. def __sub__(self, other):
  25. s = self
  26. for i in range(min(len(self.v), len(other.v))):
  27. s.v[i]-=other.v[i]
  28. if len(other.v) > len(self.v):
  29. for i in range(len(self.v), len(other.v)):
  30. s.v.append(-other.v[i])
  31. return s
  32. def __isub__(self, other):
  33. for i in range(min(len(self.v), len(other.v))):
  34. self.v[i]-=other.v[i]
  35. if len(other.v) > len(self.v):
  36. for i in range(len(self.v), len(other.v)):
  37. self.v.append(-other.v[i])
  38. return self
  39. #строчное представление
  40. def __str__(self):
  41. k = 0
  42. s = ''
  43. for elem in self.v:
  44. s += ('+' * (elem >= 0) + str(elem) + 'x^' + str(k)) * (elem !=0)
  45. k += 1
  46. if s[0] == '+':
  47. return s[1:]
  48. else:
  49. return s
  50. #значение полинома от x
  51. def Xv(self, x):
  52. s = 0
  53. k = 0
  54. for elem in self.v:
  55. s+=(elem * x**k)
  56. k+=1
  57. return s
  58. n = polinom(-1,-2,-3,-4)
  59. n += polinom(1,2,3,4,5)
  60. print((n), n.Xv(1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement