ソース アルファベットが a、b、c であり、a が終端記号であると仮定すると、単位間隔は対応して [0, P(a), P(a)+P(b), 1] として分割されます。
a (終了記号) で終わる一連の b と c で構成される文字列は、エンコードに有効です。真ん中に a がある文字列は、エンコードに対して無効と見なされます。
したがって、間隔 [P(a), 1) にあるエンコーディングを使用して文字列を作成するのは簡単です。しかし、算術コーディングは任意の文字列を区間 [0, P(a)) のエンコーディングに割り当てますか? 空の文字列は、[0, P(a)) にあるビット文字列にエンコードされると見なされますか? 空の文字列は、文字列「a」または単なる終了記号と見なすことができるためです。
空の文字列をエンコードするためにスペースを割くのは無意味に思えるので、単位間隔の最初の分割を [0, (P(b)-P(a))/(1-P(a)), 1] にしないのはなぜですか? [P(a), P(a)+P(b), 1] をマッピングして単位間隔を埋めます。次に、その後の精密分割では、通常どおり [0, P(a), P(a)+P(b), 1] が使用されます。