Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. # Podstawowe działania na wektorach
  2.  
  3. from random import uniform
  4.  
  5.  
  6. class Vector:
  7.  
  8. def __init__(self, n = 3):
  9. self.size = n
  10.  
  11. def random_vector_generator(self):
  12. self.values = []
  13. for i in range(self.size):
  14. self.values.append(uniform(-10, 10))
  15. print (self.values)
  16.  
  17. def vector_from_list(self, lista):
  18. if type(lista) == list and len(lista) == self.size:
  19. self.values = lista
  20. print (self.values)
  21.  
  22. def adding_vectors(self, other):
  23. if self.size != other.size:
  24. return "ValueError"
  25. else:
  26. for i in range(self.size):
  27. self.values[i] = self.values[i] + other.values[i]
  28. return self.values
  29.  
  30. def __add__(self, other):
  31. self.adding_vectors(other)
  32.  
  33. def subtracting_vectors(self, other):
  34. if self.size != other.size:
  35. raise ValueError
  36. else:
  37. for i in range(self.size):
  38. self.values[i] = self.values[i] - other.values[i]
  39. return self.values
  40.  
  41. def __sub__(self, other):
  42. self.subtracting_vectors(other)
  43.  
  44. def scalar_product(self, scalar = 1):
  45. new_vector = Vector(self.size)
  46. new_vector_values = []
  47. for i in range(self.size):
  48. new_vector_values.append(self.values[i]*scalar)
  49. return new_vector.vector_from_list(new_vector_values)
  50.  
  51. def vector_scalar_product(self, other):
  52. if self.size == other.size:
  53. new_vector = Vector(self.size)
  54. new_vector_values = []
  55. for i in range(self.size):
  56. new_vector_values.append(self.values[i] * other.values[i])
  57. return new_vector.vector_from_list(new_vector_values)
  58. else:
  59. raise ValueError
  60.  
  61. def __mul__(self, other):
  62. if isinstance(other, Vector):
  63. self.vector_scalar_product(other)
  64. elif isinstance(other, int):
  65. self.scalar_product(other)
  66. else:
  67. raise ValueError
  68.  
  69. def __rmul__(self, other):
  70. self.scalar_product(other)
  71.  
  72. def length_of_vector(self):
  73. length = 0
  74. for i in self.values:
  75. length +=i**2
  76. return length**(1/2)
  77.  
  78. def summary_of_values(self):
  79. summary = 0
  80. for i in self.values:
  81. summary += i
  82. return summary
  83.  
  84. def vector_product(self, other):
  85. if self.size != 3 and other.size != 3:
  86. raise ValueError
  87. else:
  88. new_vector = Vector(self.size)
  89. new_vector.vector_from_list([self.values[1] * other.values[2] - self.values[2] * other.values[1], self.values[2] * other.values[0] - self.values[0] * other.values[2], self.values[0] * other.values[1] - self.values[1] * other.values[0]])
  90. return new_vector
  91.  
  92.  
  93. v1 = Vector()
  94. v2 = Vector()
  95. v1.random_vector_generator()
  96. v2.vector_from_list([1,2,3])
  97. v1.vector_scalar_product(v2)
  98. v1*v2
  99. v1*5
  100. 5*v1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement