Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. class Vector(list):
  2. def __init__(self, *el):
  3. for e in el:
  4. self.append(e)
  5.  
  6. def __add__(self, other):
  7. if type(other) is Vector:
  8. assert len(self) == len(other), "Error 0"
  9. r = Vector()
  10. for i in range(len(self)):
  11. r.append(self[i] + other[i])
  12. return r
  13. else:
  14. other = Vector.emptyvec(lens=len(self), n=other)
  15. return self + other
  16.  
  17. def __sub__(self, other):
  18. if type(other) is Vector:
  19. assert len(self) == len(other), "Error 0"
  20. r = Vector()
  21. for i in range(len(self)):
  22. r.append(self[i] - other[i])
  23. return r
  24. else:
  25. other = Vector.emptyvec(lens=len(self), n=other)
  26. return self - other
  27.  
  28. def __mul__(self, other):
  29. if type(other) is Vector:
  30. assert len(self) == len(other), "Error 0"
  31. r = Vector()
  32. for i in range(len(self)):
  33. r.append(self[i] * other[i])
  34. return r
  35. else:
  36. other = Vector.emptyvec(lens=len(self), n=other)
  37. return self * other
  38.  
  39. def __truediv__(self, other):
  40. if type(other) is Vector:
  41. assert len(self) == len(other), "Error 0"
  42. r = Vector()
  43. for i in range(len(self)):
  44. r.append(self[i] / other[i])
  45. return r
  46. else:
  47. other = Vector.emptyvec(lens=len(self), n=other)
  48. return self / other
  49.  
  50. def __pow__(self, other):
  51. if type(other) is Vector:
  52. assert len(self) == len(other), "Error 0"
  53. r = Vector()
  54. for i in range(len(self)):
  55. r.append(self[i] ** other[i])
  56. return r
  57. else:
  58. other = Vector.emptyvec(lens=len(self), n=other)
  59. return self ** other
  60.  
  61. def __mod__(self, other):
  62. return sum((self - other) ** 2) ** 0.5
  63.  
  64. def mod(self):
  65. return self % Vector.emptyvec(len(self))
  66.  
  67. def dim(self):
  68. return len(self)
  69.  
  70. def __str__(self):
  71. if len(self) == 0:
  72. return "Empty"
  73. r = [str(i) for i in self]
  74. return "< " + " ".join(r) + " >"
  75.  
  76. def _ipython_display_(self):
  77. print(str(self))
  78.  
  79. @staticmethod
  80. def emptyvec(lens=2, n=0):
  81. return Vector(*[n for i in range(lens)])
  82.  
  83. @staticmethod
  84. def randvec(dim):
  85. return Vector(*[random.random() for i in range(dim)])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement