部分参考 此处

通过打表可以找到规律,给出结论:

设 $f(l,r)$ 表示区间 $[l,r]$ 的异或和。由于$f(2^k,2^{k + 1} - 1)$ 中的最高位出现 $2^k$ 次,则由 $2^k \equiv 0 \bmod 2$ 可知 $f(2^k,2^{k + 1} - 1) = f(1,2^k - 1)$,所以说可以得到:

对于 $k \ge 2$ 时,要求 $f(1,n)$ 时,若最高位为 $2^k$,则 $f (1,n) = f(1,2^k - 1) \oplus f (2^k,n) = f(2^k,n)$。设 $p = n - 2^k + 1$,则有:

  • $p \equiv 0 \bmod 2$

    $f (2^k,n) = f(1,n - 2^k)$,又因为 $n - 2^k$ 与 $n$ 同奇偶,故由于 $k \ge 2$,$f (1,n)$ 的值取决于小于 $4$ 的部分。也就是说:

  • $p \equiv 1 \bmod 2$

    同理可知最高位可以保留,同时 $f (1,n)$ 的值也取决于小于 $4$ 的部分。也就是说: