Mari kita pertimbangkan bit string x . Definisi:nx
- = bit string x denganbit i terakhir yangdilengkapi.f(x,i)xi
- = "ketidakseimbangan" x : jumlah 1d di x - jumlah 0d di x .b(x)xx −x
Sekarang perbaiki sebuah string . Pertimbangkan fungsi g ( i ) = b ( f ( x , i ) ) . Pengamatan:xg(i)=b(f(x,i))
- .g(0)=b(x)
- .g(n)=−g(0)
- untuk semua saya . Kami menghapus satu 0 dan menambahkan satu 1 atau sebaliknya.|g(i)−g(i+1)|=2i
Sekarang berarti ada sedemikian rupa sehingga - 1 ≤ g ( i ) ≤ + 1 .i−1≤g(i)≤+1
Karenanya kita dapat membangun string -bit y sebagai berikut: concatenate f ( x , i ) dan pengkodean biner dari indeks i . Nilai absolut dari ketidakseimbangan y adalah O ( log n ) . Selain itu, kita dapat memulihkan x mengingat y ; pemetaan itu adalah penipisan.(n+O(logn))yf(x,i)iyO(logn)xy
Akhirnya, Anda bisa menambahkan bit tiruan yang mengurangi ketidakseimbangan y dari O ( log n ) menjadi 0 .O(logn)yO(logn)0