1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
| import math
def vector_addition(vector1, vector2): return [a + b for a, b in zip(vector1, vector2)]
def vector_subtraction(vector1, vector2): return [a - b for a, b in zip(vector1, vector2)]
def dot_product(vector1, vector2): return sum(a * b for a, b in zip(vector1, vector2))
def vector_length(vector): return math.sqrt(sum(x**2 for x in vector))
def unit_vector(vector): length = vector_length(vector) if length == 0: return "零向量没有单位向量" return [x / length for x in vector]
def vector_angle(vector1, vector2): length1 = vector_length(vector1) length2 = vector_length(vector2) if length1 == 0 or length2 == 0: return "无法计算零向量的夹角" dot = dot_product(vector1, vector2) cos_theta = dot / (length1 * length2) cos_theta = max(min(cos_theta, 1.0), -1.0) theta = math.acos(cos_theta) * 180 / math.pi return f"{theta:.2f} 度"
def print_vector(vector): formatted = " ".join(f"{x:.2f}" for x in vector) print(f"[{formatted} ]")
vector1 = [float(x) for x in input().split(",")] vector2 = [float(x) for x in input().split(",")]
print("\n1. 向量加法结果:") add_result = vector_addition(vector1, vector2) print_vector(add_result)
print("\n2. 向量减法结果:")
sub_result = vector_subtraction(vector1, vector2) print_vector(sub_result)
print("\n3. 向量点积结果:")
dot_result = dot_product(vector1, vector2) print(f"{dot_result:.2f}")
print("\n4. 第一个向量的长度:")
length1 = vector_length(vector1) print(f"{length1:.2f}")
print("\n5. 第二个向量的长度:") length2 = vector_length(vector2) print(f"{length2:.2f}")
print("\n6. 第一个向量的单位向量:") unit_vector1 = unit_vector(vector1) if isinstance(unit_vector1, str): print(unit_vector1) else: print_vector(unit_vector1)
print("\n7. 第二个向量的单位向量:")
unit_vector2 = unit_vector(vector2) if isinstance(unit_vector2, str): print(unit_vector2) else: print_vector(unit_vector2)
print("\n8. 向量夹角:")
angle = vector_angle(vector1, vector2) print(angle)
|