NICOLAとかを並べ替える方法論
注:本件は考え中です。文字数の少ない英字からやる可能性のほうが高いかも……。
(というか、英字ですらうまく計算できるかどうか微妙なのですが)
タイトルに恣意的な意味合いはありません……というか、NICOLAを下敷きにするのが一番面白そうだと感じただけの話でして。
#飛鳥を下敷きにすると小指伸領域を使う必要が出てくるので、それを避けるべく「3段10列3シフト状態」に制限するところからはじめようかと。
基本的には、運指解析スクリプトを使う。
- はじめはDKのどちらかにのみ重複で割り振って、左右二組にわける。交互打鍵性の良いものを残す。
- 考え方としては「秋月かな配列」でやったことと同じ。
- 対象文字数が90文字で「全て右手」〜「全て左手」のパタンがあるので、全てを考慮すると2の90乗だけパタンが存在することになる。ただし、今回の計算ではNICOLA方式の「左手15キー×3シフト状態・右手15キー×3シフト状態」に制限するので、左右同数(00001111など)ではないパタンは全て計算を端折る(それでも膨大な数になるのですが……)。
- パタンを少しでも減らすために、「いんつっく」は片方に固定する方がいいのかも……?それでも全然減りそうにはないなぁ……。
- 濁音になりうる清音は無シフト、濁音になりえない清音と半濁音はなるべく同手シフト、濁音は逆手シフト、大書き文字と小書き文字(【あ】と【ぁ】とか)は同じ位置にしてシフトで区別、清音と濁音と半濁音(【は】と【ば】と【ぱ】とか)は同じ位置にしてシフトで区別……って制約をつけたほうがいいのかも?
- いや、こうなるとNICOLAよりも使いづらい解しか得られないかも?でも、計算リソース的にはこれくらいから始めても十二分に厳しいよなぁ。
- 濁音になりうる清音は無シフト、濁音になりえない清音と半濁音はなるべく同手シフト、濁音は逆手シフト、大書き文字と小書き文字(【あ】と【ぁ】とか)は同じ位置にしてシフトで区別、清音と濁音と半濁音(【は】と【ば】と【ぱ】とか)は同じ位置にしてシフトで区別……って制約をつけたほうがいいのかも?
- パタンを少しでも減らすために、「いんつっく」は片方に固定する方がいいのかも……?それでも全然減りそうにはないなぁ……。
- 左右に分けたら、それぞれEDCかIK,にのみ割り振って3段に分け、同指跳躍が少なくなるようにする(※計算中は、範囲外のキーは全てNullとして扱う)。
- 次は各段ごとに位置を割り振って、アルペジオが多くなるようにする(※計算中は、範囲外のキーは全てNullとして扱う)。
- (英字の場合は省略)次に各キーごとに頻度順で無シフト→同手→逆手と割り当てる。
- 最後に指の使用頻度を計って、問題ないかどうか確認。
失敗するのは目に見えているけど、面白いテーマにはなりうる気もする。
#中指逐次シフトやJISシリーズかな配列など「文字ごとに打数が不定の場合」は、仮に計算で求めるとしても、やっぱりmikadoさん方式で(部分→全体の方向で)攻めるのが正攻法だと思います。ここで上げている「全体→部分」のアプローチは「1アクション1文字(単層同時打鍵方式)」に限って適用可能な話(しかもたぶん、同時打鍵系でも「部分→全体」のアプローチを用いる方が良い気がしているというのに、わざわざこんな方法をテスト的に採用している)なので、この点はご注意いただきたく。
というか、全てのパタンを計算するのは無理がありすぎるので、ある程度前提制約を課して「極端に打ちにくい配列を除外する」という方法を採用しようかと。ある意味花配列のやり方と同じなのですが、得るものは少なそうな予感がします……。