detection搜索上一周期对应的detection的时候,
因为detection是range进行排序的,
所以可以针对当前周期的detecion,依次搜索相对应周期对应点的两侧,来尽快搜索到想要的点。
#include <iostream>
#include <cstdlib>
int main()
{
int tmp = 0;
for(int i=0;i<10;i++)
{
tmp = (abs(tmp)+(i%2))*((i%2 > 0) ? 1:-1);
std::cout << tmp << std::endl;
}
}
其结果就是0,1,-1,2,-2... 。
再加上当前周期的原始序位cur_i即可。
为防止超限,还可以对cur_i取相对位置得到pre_i,
即 pre_i = (int)((float)cur_i /(float)cur_Nums)* (float)pre_Nums)
。
补充
tmp = ((n+1)/2*(-1)*2^((n+1)%2); //也可以实现效果,但是计算量较大