Gama kód je jednoduchý algoritmus pro kódování přirozených čísel a využívá se například v kompresi dat. V tomto kódování se využívá alfa kód, beta kód a beta kód s čárkou. Gama kód je permutací gama kódu s čárkou (viz níže).
Gama kód přirozeného čísla N se vytváří z těchto komponent:
Slovo A je vždy o jeden symbol delší, než část B. Proto je možné „vložit“ mezi jednotlivé symboly delší část všechny symboly kratšího slova tak, že první, lichý a poslední symbol pochází ze slova A, zatímco všechny sudé symboly z části B (například ze slov AAAA a BBB vznikne slovo ABABABA).
Nechť je tedy zavedena funkce F, která toto „vnoření“ kratšího řetězce do delšího provede. Gama kód je pak definován takto:
€€ \gamma (N) = F(\alpha (|\beta(N)|), \beta' (N)) €€| Číslo | Slovo A | Slovo B | Kód |
|---|---|---|---|
| 1 | 1 | prázdný řetězec | 1 |
| 2 | 01 | 0 | 001 |
| 3 | 01 | 1 | 011 |
| 4 | 001 | 00 | 00001 |
| 5 | 001 | 01 | 00011 |
| 10 | 0001 | 010 | 0001001 |
| 100 | 0000001 | 100100 | 0100000100001 |
Beta kód (binární zápis) čísla 42 je 101010. Délka tohoto řetězce je 6. Alfa kód čísla 6 je 000001. Tím máme hotovou první část (slovo A). Nyní znovu vezmeme beta kód čísla 42 a odebereme z něj první jedničku, čímž získáme jeho beta kód s čárkou, což je 01010. Toto je druhá část (slovo B). Nyní „vnoříme“ kratší slovo (slovo B) do slova delšího (slovo A). Získáme tak výsledný gama kód: 00010001001.
Gama kód s čárkou přirozeného čísla N se vytváří ze stejných komponent jako gama kód:
Namísto funkce F, která jednotlivá slova „vložila“ do sebe, je použito obyčejné zřetězení:
€€ \gamma' (n) = \alpha (|\beta(n)|) \dotplus \beta' (n) €€| Číslo | Slovo A | Slovo B | Kód |
|---|---|---|---|
| 1 | 1 | prázdný řetězec | 1 |
| 2 | 01 | 0 | 010 |
| 3 | 01 | 1 | 011 |
| 4 | 001 | 00 | 00100 |
| 5 | 001 | 01 | 00101 |
| 10 | 0001 | 010 | 0001010 |
| 100 | 0000001 | 100100 | 0000001100100 |
Beta kód (binární zápis) čísla 42 je 101010. Délka tohoto řetězce je 6. Alfa kód čísla 6 je 000001. Tím máme hotovou první část (slovo A). Nyní znovu vezmeme beta kód čísla 42 a odebereme z něj první jedničku, čímž získáme jeho beta kód s čárkou, což je 01010. Toto je druhá část (slovo B). Nyní už jen obě části zřetězíme (000001 a 01010) a získáme výsledný gama kód s čárkou: 00000101010.