最简单的倍增思想:
有一个兔子,x到y的距离未知,从x最快跳到y的策略是什么?
兔子只能一步一步的跳,然后判断是否到达 y 点,
那么兔子所有可能条的位置为:(1 * 2 ^ 0)(1 * 2 ^ 1)(1 * 2 ^ 2)(1 * 2 ^ 3)……
倍增的思想就是:从当前位置,每次跳不超过 y 的最大值:
跳 2 ^ 3 而不是 2 ^ 4
为什么这样一定能到达y点?
因为每次跳过的距离都是(1 * 2 ^ 0)(1 * 2 ^ 1)(1 * 2 ^ 2)(1 * 2 ^ 3)……
每个值相当于多次跳过最小距离(1),也可以说是最小距离的倍增,所以一定能到达
---------------------------------------------------------------------------------------------------------------------------------
通过这种方法就可以尽可能少的次数跳到 y 点,或者说在其他环境下尽可能少的调用函数,使遍历次数减少等