Vamos considerar as cadeias bits x . Definições:nx
- = sequência de bits x com os últimos i bits complementados.f(x,i)xi
- = "desequilíbrio" de x : número de 1s em x - número de 0s em x .b(x)xx −x
Agora corrija uma string . Considere a função g ( i ) = b ( f ( x , i ) ) . Observações:xg(i)=b(f(x,i))
- .g(0)=b(x)
- .g(n)=−g(0)
- para todos i . Nós removemos um 0 e adicionamos um 1 ou vice-versa.|g(i)−g(i+1)|=2i
Agora segue-se que existe um tal que - 1 ≤ g ( i ) ≤ + 1 .i−1≤g(i)≤+1
Portanto, podemos construir uma sequência de bits y da seguinte forma: concatenar f ( x , i ) e a codificação binária do índice i . O valor absoluto do desequilíbrio de y é O ( log n ) . Além disso, podemos recuperar x dado y ; o mapeamento é bijeção.(n+O(logn))yf(x,i)iyO(logn)xy
O(logn)yO(logn)0