我希望能够将鼓放在某个位置,但如果我以游乐园摩天轮为例可能会更好。我确定这个搜索方法有一个名字?
有100把椅子的摩天轮在旋转,它随机停下来,90号椅子在底部,所有乘客都离开了。现在,如果我想把10号椅子放到地上让椅子10的乘客可以离开,是否有算法可以帮助我计算到10号椅子的最短距离,这将使摩天轮以正确的方向旋转到达10号椅子的数量?
答案 0 :(得分:1)
我们假设椅子顺时针编号,N
是椅子的数量( 100 )。
另外,让stopped
为轮椅停止的椅子编号。
desired
是您要联系的主席号码。
因此,算法将如下所示:
int distClockwise = desired - stopped;
if(distClockwise < 0) {
distClockwise += N;
}
int distCounterClockwise = N - distClockwise;
if(distClockwise < distCounterClockwise) {
//spin the wheel clockwise
}
else {
//spin the wheel counterclockwise
}