从矢量的幅度减去常数(缩短矢量)而不使用平方根?

use*_*342 0 language-agnostic algorithm vector projection linear-algebra

我有一个vector V用整数表示的2维,我constant C从V的幅度中减去a 并获得与V vector W具有相同方向但显然是| V |的幅度.减去C.

幅度需要平方根,整数平方根是烦恼.我真的不想为此转换为浮点数,而且在过去我设法操纵方程式来移除平方根(比如将一个向量投影到另一个)...但这是一个棘手的问题.所以无论如何,W = (|V| - C) * (V / |V|)我认为基本的等式是.我已经尝试过操纵它,但无法在其中的某个点移除幅度.

是否可以在不使用平方根的情况下从矢量的幅度中减去?

Dav*_*tat 6

不 - 如果你将(1,1)缩短1,那么你得到(1 - 1 /√2,1 - 1 /√2),并且没有办法只用+, - 来写1 - 1 /√2,*,/和整数.