← 返回题库
初级

令 $\vec{u}$ 为向量 $(1,2)$。假定有另一个正整数坐标为 $(n, m)(n > m

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    import matplotlib.pyplot as plt
    import numpy as np
    from math import sqrt
    
    u = (1, 2)
    vectors = []
    for n in range(1, 20):
        for m in range(1, n):
            v = (n, m)
            dist = sqrt((v[0]-u[0])**2 + (v[1]-u[1])**2)
            if abs(dist - 13) < 0.001:
                vectors.append(v)
    
    plt.figure(figsize=(8, 6))
    plt.scatter(u[0], u[1], color='red', s=100, label='u = (1, 2)', zorder=5)
    for v in vectors:
        plt.scatter(v[0], v[1], color='blue', s=50)
        plt.plot([u[0], v[0]], [u[1], v[1]], 'g--', alpha=0.5)
        plt.annotate(f'v={v}', v, textcoords="offset points", xytext=(5, 5))
    
    plt.axhline(y=0, color='k', linewidth=0.5)
    plt.axvline(x=0, color='k', linewidth=0.5)
    plt.grid(alpha=0.3)
    plt.legend()
    plt.title('寻找距离u为13的向量v')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.tight_layout()
    plt.show()
    
    if vectors:
        v = vectors[0]
        displacement = (v[0]-u[0], v[1]-u[1])
        print(f"v = {v}, 位移 = {displacement}")
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码