Ada beberapa cara untuk menafsirkan pertanyaan itu. Apa yang saya pikir Anda mungkin tanyakan adalah Anda memiliki urutann huruf dalam alfabet Σ dimana |Σ|=80. Anda ingin menyimpan ini dalam bit sesedikit mungkin. Kami akan menganggap bahwa huruf-huruf dalam alfabet didistribusikan secara seragam.
Jumlah informasi-teori ruang yang diperlukan untuk menyimpan ini nlog2|Σ|bit. Menggunakan kode aritmatika, Anda dapat melakukan ini dalam waktu linier, menggunakanO(logn)bit ruang menengah. (Ingat, itulah logaritma jumlah simbol, dalam bit! Jika ukuran urutannya cocok dengan kata mesin, penyimpanan perantara yang diperlukan adalah jumlah kata mesin yang paling banyak.)
Jadi itu cukup bagus. Tapi bagaimana kalau kita ingin akses acak?
Ternyata itu bisa dilakukan. Teknik pertama untuk melakukannya baru ditemukan sekitar empat tahun lalu. Kami dapat menyimpan urutan dinlog2|Σ|bit, sehingga dapat membaca atau menulis entri apa punO(1)waktu. Jika Anda memikirkannya, ini adalah hasil yang luar biasa, karena itu berarti bahwa komputer yang bekerja dengan radix apa pun, dalam arti, setara dengan yang biner.
Inilah makalahnya: Yevgeniy Dodis, Mihai Pătraşcu, dan Mikkel Thorup, Alternatif Pengodean Aritmatika dengan Dekodabilitas Lokal , STOC 2010.
Ngomong-ngomong, ingat nama Mihai Pătraşcu. Dia adalah dan merupakan hal terdekat yang kita miliki dengan Évariste Galois modern. Dia meninggal sangat muda, karena tumor otak pada usia 29 tahun. Namun dalam karirnya yang pendek sebagai ilmuwan komputer, karyanya merevolusi bidang analisis algoritma dengan cara yang akan memakan waktu puluhan tahun untuk sepenuhnya dipahami.