CF 103388I - Inverting Everything

Write $N$ in binary form $$N = (am a{m-1}dots a0)2 = sum{i=0}^m ai 2^i.$$ Let $kappat N$ denote the least integer $M ge N$ whose binary expansion contains exactly $t$ ones, i.e.

CF 103388I - Inverting Everything

Rating: -
Tags: -
Solve time: 2m 17s
Verified: no

Solution

Solution

Write $N$ in binary form

$$N = (a_m a_{m-1}\dots a_0)2 = \sum{i=0}^m a_i 2^i.$$

Let $\kappa_t N$ denote the least integer $M \ge N$ whose binary expansion contains exactly $t$ ones, i.e.,

$$M = \sum_{i \in S} 2^i \quad \text{for some } |S| = t.$$

This definition implies that if $N$ already has exactly $t$ ones, then $\kappa_t N = N$, since $N$ is admissible and minimal among numbers $\ge N$ with the same property.

Assume $N$ does not have exactly $t$ ones. Let $j$ be the highest position such that $M$ and $N$ differ in bit $j$, where $M = \kappa_t N$. By minimality of $M$, all higher bits agree:

$$a_i(M) = a_i(N) \quad \text{for } i > j,$$

and at position $j$, the construction of $M$ forces $a_j(M)=1$ while $a_j(N)=0$. Otherwise a smaller admissible number $\ge N$ would exist by placing the highest 1 lower than $j$, contradicting minimality.

All remaining $t-1$ ones of $M$ must lie in positions strictly below $j$. Among all choices of $t-1$ positions below $j$, the smallest possible value is obtained by placing them in the lowest available positions $0,1,\dots,t-2$. This gives the lower bound

$$M \le 2^j + (2^{t-1}-1).$$

Now compare $N$ and $M$. Since $a_j(N)=0$ and all higher bits coincide, the difference satisfies

$$M - N \le \bigl(2^j + (2^{t-1}-1)\bigr) - (2^j - 1),$$

where $2^j - 1$ is the largest possible contribution of lower bits of $N$ under the constraint that a carry into position $j$ is required for $M \ge N$. This simplifies to

$$M - N \le 2^{t-1}.$$

To show this bound is attained, take

$$N = 2^m - 1$$

for any $m \ge t-1$. Then $N$ has binary form consisting of $m$ ones. The smallest integer $\ge N$ with exactly $t$ ones must place a 1 at position $m$ and distribute the remaining $t-1$ ones in the lowest positions, giving

$$\kappa_t N = 2^m + (2^{t-1}-1).$$

Hence

$$\kappa_t N - N = \bigl(2^m + (2^{t-1}-1)\bigr) - (2^m - 1) = 2^{t-1}.$$

No larger value is possible, since the previous argument gives $\kappa_t N - N \le 2^{t-1}$ for all $N \ge 0$.

This completes the proof. ∎

$$\boxed{2^{t-1}}$$