0

我有一个用整数表示的二维vector V,我constant C从 V 的大小中减去 a 并得到与vector WV 具有相同方向但显然 |V| 的大小的a 减 C。

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

甚至可以在不使用平方根的情况下从向量的大小中减去吗?

4

2 回答 2

6

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

于 2013-05-15T18:38:09.730 回答
1

重写你的最后一个方程:

W = (|V| - C) * (V / |V|)
  = V * (|V| - C) / |V|
  = V * (1 - C / |V|)

您的比例因子取决于 的大小V,这并不总是合理的。

于 2013-05-15T18:48:08.033 回答