当前位置:实例文章 » HTML/CSS实例» [文章]vector模拟实现

vector模拟实现

发布人:shili8 发布时间:2024-12-26 22:05 阅读次数:0

**Vector 模拟实现**

在计算机科学中,向量(Vector)是指一组数字的集合,每个数字代表一个维度。向量可以用来表示空间中的位置、速度、加速度等物理量,也可以用来表示数据的特征,如图像或音频信号的颜色和强度。

在本文中,我们将模拟实现一个基本的向量类,支持常见的向量运算,如加法、减法、点积(Dot Product)、叉积(Cross Product)等。

### 向量类定义

import mathclass Vector:
 def __init__(self, *args):
 """
 初始化向量对象 :param args: 向量的维度值,支持多个参数 """
 self.dim = len(args)
 self.values = list(args)

 def __str__(self):
 return f"Vector({', '.join(map(str, self.values))})"

 def __add__(self, other):
 """
 向量加法 :param other: 另一个向量对象 :return:两个向量的和 """
 if self.dim != other.dim:
 raise ValueError("向量维度不一致")
 return Vector(*[a + b for a, b in zip(self.values, other.values)])

 def __sub__(self, other):
 """
 向量减法 :param other: 另一个向量对象 :return:两个向量的差值 """
 if self.dim != other.dim:
 raise ValueError("向量维度不一致")
 return Vector(*[a - b for a, b in zip(self.values, other.values)])

 def dot_product(self, other):
 """
 点积运算 :param other: 另一个向量对象 :return:两个向量的点积值 """
 if self.dim != other.dim:
 raise ValueError("向量维度不一致")
 return sum(a * b for a, b in zip(self.values, other.values))

 def cross_product(self, other):
 """
 叉积运算 :param other: 另一个向量对象 :return:两个向量的叉积值 """
 if self.dim !=3 or other.dim !=3:
 raise ValueError("仅支持三维向量")
 return Vector(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])


###例子
# 创建两个向量对象v1 = Vector(1,2,3)
v2 = Vector(4,5,6)

# 向量加法print(v1 + v2) # Vector(5,7,9)

# 向量减法print(v1 - v2) # Vector(-3, -3, -3)

# 点积运算print(v1.dot_product(v2)) #32# 叉积运算(仅支持三维向量)
v3 = Vector(7,8,9)
print(v1.cross_product(v3)) # Vector(-15,6, -12)


本文模拟实现了一个基本的向量类,支持常见的向量运算,如加法、减法、点积和叉积等。通过例子展示了如何使用这个类来进行向量运算。

其他信息

其他资源

Top