逆时针绕行的算法是什么?

时间:2013-12-08 14:27:34

标签: algorithm

我能够制作顺时针方向的算法:1 - > 2 - > 3 - > 4 - > 1 - > 2 - > 3 ...... 就像这样:

(i % 4) + 1

现在我需要做相反的事情:4 - > 3 - > 2 - > 1 - > 4 - > 3 - > 2 ...

你能帮助我吗,这让我很生气。 :d

谢谢!

4 个答案:

答案 0 :(得分:2)

针对逆时针值

尝试以下公式
  

4-(i%4)

答案 1 :(得分:1)

怎么样

 5 - ((i % 4) + 1)

似乎可以解决问题。可能不是最佳但可行的

答案 2 :(得分:1)

看看你的“顺时针”系列 - 你会注意到“逆时针”系列总是五减去相应的顺时针值。因此,

5 - ((i % 4) + 1)

应该有效。在大多数语言中也可以省略括号,因为%通常在加法和减法之前执行。

答案 3 :(得分:0)

我很惊讶这里没有提到它,但是没有任何理由可以减去任何东西(我个人认为它的可读性不那么强) - 一个额外的模数可以做同样的事情 -

(i + 3) % 4

一般情况下 -

(i + (N-1)) % N

或者返回任意步骤m -

(i + (N-m)) % N