小さい整数ほど頻繁に現れるときの簡略符号化。 予測誤差の符号化に便利。
| 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 
| 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 
| 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 
    int n = 1; // 個数のカウンタ
    int a = 0; // 予測誤差の絶対値の和
    while (予測誤差 e を読む) {
        for (k = 0; (n << k) < a; k++);
        m = (e >= 0) ? 2*e : -2*e-1;
        (m >> k) ビットの 0 を出力;
        1 ビットの 1 を出力;
        m の最後の k ビットを出力;
        a += abs(e);
        if (++n >= 64) {
            a /= 2;  n /= 2;
        }
    }
例(k=0)
| 誤差 | 出力 | 
|---|---|
| 0 | 1 | 
| -1 | 01 | 
| 1 | 001 | 
| -2 | 0001 | 
| 2 | 00001 | 
| -3 | 000001 | 
| 3 | 0000001 | 
例(k=1)
| 誤差 | 出力 | 
|---|---|
| 0 | 10 | 
| -1 | 11 | 
| 1 | 010 | 
| -2 | 011 | 
| 2 | 0010 | 
| -3 | 0011 | 
| 3 | 00010 | 
Solomon W. Golomb はペントミノの考案者でもある。
Optimal Golomb Rulers(最適ゴロム定規/最短ゴロム定規)
| 1 | 3 | 5 | 2 | |||||||
Last modified: 2004-12-17 22:58:21