和田研フォントキットの統計(1)
敵を知り、己を知らば百戦危うからず。なにかを為そうとするときは、その対象についてよく知っておくに越したことは無い。というわけで、いろいろな性質を調べてみることにする。
まず、全文字数は12239。Zipfの法則により、よく使われる文字はせいぜい2000〜3000文字程度だとは思うが、これほどたくさんの文字があるということは知っておいて良い。覚悟のために。
次に、漢字の組み立て方について調べる。和田研フォントキットでは、漢字は段階的に作られる。まず、エレメントという一番小さな単位があり、これは基本的には一画に対応する。点、右ハライ、左ハライ、などなど。それを組合せてプリミティブという単位が作られ、さらにプリミティブを組み合わせて漢字ができる。
今回はこのプリミティブの組み合わせ方について調べる。プリミティブは基本的にはふたつを組み合わせて新しい組合せデータを作るのだが、そうでない場合も存在する。
適当なコードを書いて調べてみたところによると、多いものから順に
- yoko 8832
- tate 3812
- tare 501
- kamae 450
- nyou 386
- kashira 65
- xscale 62
- yscale 28
- kamae2 23
- nocenter 2
- xlimit 1
- changexunit 1
という順番になった。次に引数の数をタイプ毎に分類すると、
- yoko 3:146 2:8686
- tate 6:1 5:7 4:65 3:364 2:3375
- tare 2:501
- nyou 2:386
- kamae2 3:23
- kashira 1:65
- kamae 2:450
という結果になった。(自明なものは省いてある。)この事より、yokoは最大でも3つまでしか同時にjointしない事がわかる。一方、縦は6つまで同時にjointする可能性がある。さらに、他のタイプは引数の数が決まっているので、複雑な場合はyokoとtateのみであるという事もわかる。とりあえずyokoについて調べる。
yokoで3つを同時にjointする場合、最も左側に来るのは38種類。2つをjointする場合、左側に来るもの(要するに偏だ)は774種類。tateの場合は 6:2 5:6 4:24 3:97 2:831となった。kamaeは62種類、kashiraは20種類、kamae2は18種類、nyouは40種類、tareは20種類。