**1. 方程**
`F(n) = min_{a+b+1=n} max(F(a)+2, F(b)+1)`
(外层 min 选切分点,内层是 max,取最坏情况。)
. 1point3acres.com
- 第一猜把 n 切成 a、b 两侧,第二猜直接猜进 b 侧
- 答案在 b 侧:等于在 b 上重新开始,共 `F(b)+1`. 1point 3acres
- 答案在 a 侧:第二猜白费,共 `F(a)+2`
**2. 反过来问:k 次最多搞定多大的 n?**
要 `F(n) ≤ k`,需要 `F(b) ≤ k−1` 且 `F(a) ≤ k−2`。两侧都取到最大:
`N(k) = N(k−1) + N(k−2) + 1`
**3. 解**
.--
N(0)=0,N(1)=1 → 1, 2, 4, 7, 12, 20, 33…
即 `N(k) = Fib(k+2) − 1`
**4. 结论**
答案是使 `Fib(k+2) > n` 的最小 k,约 1.44·log₂n。 |