// Elias Omega – keyfi büyüklükte tamsayılar için asimptotik olarak optimal kod
Büyük sayılar için teorik minimum uzunluğa yaklaşır.
Uzunlukları özyinelemeli ve şık bir şekilde kodlar.
Ek parametre gerektirmeden her pozitif tamsayıyla çalışır.
Elias Omega, değeri 1 olana kadar bir sayının uzunluğunu özyinelemeli olarak kodlar. n ile başlar, log₂(n)'i kodlar, ardından log₂(log₂(n)) ve böyle devam ederek 1'e ulaşır. Kod, bu değerlerin ters sırada birleştirilmesiyle oluşturulur ve sonunda 0 ile sonlandırılır. Sonuç olarak log(n) + log(log(n)) + log(log(log(n))) + ... bit elde edilir.
n=16: 16 → ikili: 10000 (uzunluk 5) 5 → ikili: 101 (uzunluk 3) 3 → ikili: 11 (uzunluk 2) 2 → ikili: 10 (uzunluk 2) 1 → dur Kodu tersten oluşturma: 0 ile başla (sonlandırıcı) Başa 10 ekle (2'yi kodlar) Başa 11 ekle (3'ü kodlar) Başa 101 ekle (5'i kodlar) Başa 10000 ekle (16'yı kodlar) Sonuç: 10 11 101 10000 0 Verimlilik karşılaştırması: n=100: Gamma=13, Delta=12, Omega=10 bit n=1000: Gamma=19, Delta=16, Omega=14 bit
Elias Omega, Elias ailesindeki en gelişmiş koddur ve asimptotik optimaliteye ulaşmak için özyinelemeli uzunluk kodlaması kullanır. Gösterimin uzunluğunu, ardından bu uzunluğun uzunluğunu vb. 1'e ulaşana kadar kodlar; bu da çok büyük tamsayılar için son derece verimli bir kod üretir.
Küçük sayılar (< 10) için genellikle Gamma en iyisidir. Orta büyüklükteki sayılar (10–1000) için Delta daha iyi sonuç verir. Büyük sayılar (> 1000) için Omega giderek daha üstün hâle gelir. Omega log*(n) yinelemeleri kullanır ve sınırda optimal davranışa ulaşır.
Bir kodun uzunluğunun teorik minimuma oranı, n büyüdükçe 1'e yaklaşıyorsa, kod asimptotik olarak optimal kabul edilir. Omega için şu geçerlidir: length(n)/log₂(n) → 1, n → ∞ iken.
Teorik üstünlüğüne rağmen Omega'yı uygulamak ve çözmek daha karmaşıktır. Sınırlı aralığa sahip gerçek verilerde Exp-Golomb veya Rice gibi daha basit kodlar çoğu zaman daha pratiktir. Omega, özellikle teorik analizde ve üst sınırı olmayan tamsayılarla ilgili senaryolarda öne çıkar.