векторы: нахождение смещения x и y по общему расстоянию

#python #math

Вопрос:

я следую книге «математика для программистов», и в главе, посвященной векторам, есть следующее упражнение.

Мини-проект 2.26: Пусть u-вектор (1, 2). Предположим, что существует другой вектор v с целочисленными положительными координатами (n, m), такой, что n > m и имеет расстояние 13 от u. Каково смещение от u к v? (Подсказка: вы можете использовать Python для поиска вектора v.)

Я чувствую, что понимаю логику этого упражнения, но данное решение не соответствует. вот мое решение

 # the point to calculate displacement from
u = (1,2)

# requirement for v => v = (n,m) amp;amp; n > m
# (1-n, 2-m) = (displacement_x, displacement_y)

# pythago says distance squared equals sum of squared dsiplacements => 13^2 = displacement_x^2   displacement_y^2

def length(v):
    return sqrt(v[0]**2   v[1]**2)

def subtract(v1, v2):
    return (v1[0] - v2[0], v1[1] - v2[1])

def distance(v1, v2):
    v = subtract(v1, v2) # vector subtraction tells us to go to x units to left | right and y units up | down to go from (a - b) b to a   
    return length(v)

for n in range(0,14):
    for m in range(0, 14):
        dist = distance((n,m), u)
        if dist == 13 and n > m > 0:
            print((n,m))

# prints (13, 7)
 

однако данное решение заключается в следующем

 for n in range(-12,15):
    for m in range(-14, 13):
        if distance((n,m), (1,-1)) == 13 and n > m > 0:
           print((n,m))
 

мой вопрос двоякий (в том случае, если я ошибаюсь)

  • откуда берется вектор (1,-1) в решении ?
  • почему диапазоны начинаются с отрицательных значений, если n и m должны быть положительными целыми числами ?

Комментарии:

1. Они оба кажутся мне совершенно правильными вопросами, и все, что я могу сказать, это то, что решение, данное в математическом тексте, было бы не в первый раз неверным. Но если вас обучает профессор, он должен знать об ошибках в тексте и не назначать эту проблему.

2. хорошо, спасибо за подтверждение, что я следую книге сам, так что решения-это все, что у меня есть. тогда, вероятно, это небольшая ошибка со стороны книг 🙂