- 追加された行はこの色です。
- 削除された行はこの色です。
*数値関数による長文圧縮 [#rddb2d60]
フィールド全体を通して規則性に乏しく,
どういう経路を選んでもかなりのバイト数を要する問題は, しばしば''長文''と呼ばれます. ~
今回は, 数値関数の助けを借りて長文を攻略する手法を紹介しましょう.
**基本的な考え方 [#ad322ddf]
不規則な長文であるほど, 多くの種類のパーツを作りたいわけですが, ~
それら全てについて, 良い圧縮率を誇る関数を考えるのは, 困難といえるでしょう. ~
例えば1変数関数f(X)を用いて, f(---)の形で多くの種類のパーツを作る場合, ~
当然その引数もたくさんの種類が必要になってくるはずで, ~
でも引数の部分が巨大になると良い圧縮率は得られません.
そこで, 数値に注目します. 数値は, 1から255までの255種類ありながら, どれもが1Bとして扱われます. ~
したがって, 上手い数値関数f(T)を作ると,
> 255種類のパーツが, 全て2バイトf(--)として記述できる!
ことになります.
**実装例 [#wd85c0bb]