Кто знает более производительный способ найти расстояние в двумерном пространстве от точки А до Б. Нужно что-то быстрее чем точное: sqrt((x1-x2)^2 - (у1-у2)^2) и более точное чем самое простое: модуль(х1-х2)+модуль(у1-у2)
x, y = 1.2345, 3.2109
le0 = sqrt(x * x + y * y)
if x < y:
x, y = y, x
y /= x
le1 = x * (1.0 + y * y * 0.5)
print(le1 / le0) # 1.0023767214085302, неплохо
В худшем случае, когда x == y, ошибка составит +6%.
Только не так уж это быстро.
Есть способ побыстрей/попроще, тут погрешность до +8%
if x < y:
x, y = y, x
le1 = x + y * 0.41421356237309515 # sqrt(2.0) - 1.0
i__egor, рад за тебя, но я всё же ответил на твой вопрос, в полном соответствии с тем, как ты его поставил.
Я вижу, ты не любитель помечать ответы решением. Таких принято считать жлобами.