简单,简短,合理的算法(要走向哪个方向?)

Pri*_*alj 5 algorithm logic distance direction

假设我们有一个编号的圆圈.我们想从A点到B点,但我们不知道是应该向左还是向右.你怎么用数字来计算你应该去哪个方向?

例:

我们目前正在进行1.我们希望继续进行5.我可以看到5更近,所以我们向右走.另请注意,您始终面向内部.

IMG

due*_*l0r 2

首先确保您所做的每个计算都是以 6(或n)为模。这意味着-2 modulo 6 = 4。然后您可以计算一次顺时针行程和一次逆时针行程。顺时针行程为BA,逆时针行程为AB。然后比较这两个结果,较低的获胜。

例子:

A = 1,B = 5

顺时针移动:BA = 4
逆时针移动:AB = -4 = 2

示例2:

A = 5,B = 1

顺时针移动:BA = 2
逆时针移动:AB = 4