数値関数による長文圧縮

フィールド全体を通して規則性に乏しく, どういう経路を選んでもかなりのバイト数を要する問題は, しばしば長文と呼ばれます.
今回は, 数値関数の助けを借りて長文を攻略する手法を紹介しましょう.

基本的な考え方

不規則な長文であるほど, 多くの種類のパーツを作りたいわけですが,
それら全てについて, 良い圧縮率を誇る関数を考えるのは, 困難といえるでしょう.
例えば1変数関数f(X)を用いて, f(---)の形で多くの種類のパーツを作る場合,
当然その引数もたくさんの種類が必要になってくるはずで,
でも引数の部分が巨大になると良い圧縮率は得られません.

そこで, 数値に注目します. 数値は, 1から255までの255種類ありながら, どれもが1Bとして扱われます.
したがって, 上手い数値関数f(T)を作ると,

255種類のパーツが, 全て2バイトf(--)として記述できる!

ことになります.

実装例


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS