毎パソ採点アルゴリズム

採点はやっぱり大御所の毎パソに合わせるのが妥当だろうと思い、改めて毎パソの採点がどのようになっているのかをチェック。
なんか変だな〜と思われる箇所も多々あるが、これは一文目で試しているからのようである。同じ間違いを中盤あたりで冒してみても下で記述しているような連続誤字のおかしい事態にはならない。不思議不思議。


いくつか一般的な法則を見つけられたと思ったけれども、それも例外があるみたいだ。
もう少し調べてみるが毎パソの通り実装するのはあきらめた。実際にはある程度気をつければそんなに問題にならないし、毎パソの採点にも疑問な点が残る。

課題文 『 平成16年8月31日付 毎日新聞社説より引用』

上の課題文へ様々な入力を行ったとき、毎パソ練習ソフトが返す結果を並べる。
ここでは以下のような表記を用いる。

・正しい場合
   入力文:『 平成』
    結果:『正正正』
・誤字
   入力文:『 ああ』
    結果:『正誤誤』
・脱字
   入力文:『 成16年』
    結果:『正脱正正正正』
・余字
   入力文:『 平成あ』
    結果:『正正正余』
・無視(誤字があるとき空白文字は無視されることあり)
   入力文:『 平成16年日付 』
    結果:『正正正正正正誤誤無』
>-----------------------------------------------------<
課題文
    『 平成16年8月31日付 毎日新聞社説より引用』

>------誤字と余字の関係-----<
入力文:『 平成ああああ年8月31日付』
 結果:『正正正誤誤余余正正正正正正正』

入力文:『 平成あああ年8月31日付』
 結果:『正正正余誤誤正正正正正正正』

入力文:『 平成ああ年8月31日付』
 結果:『正正正誤誤正正正正正正正』

入力文:『 平成ああ6年8月31日付』
 結果:『正正正余誤正正正正正正正正』
//以上の結果からn文字入るべきところにn文字より多い文字列が入ると
//n文字は誤字として扱われ、それ以外は余字となる

■166年
入力文:『 平成166年8月31日付 毎日新聞』
 結果:『正正正正正誤誤誤誤誤誤誤誤誤誤誤誤誤』

入力文:『 平成166年8月31日付 毎日新聞社』
 結果:『正正正正正余正正正正正正正正正正正正正』
//以上の結果から2文字以上続けて同じ文字を入力して間違えた場合
//12文字以下の正しい文字列は誤字になる

入力文:『 平成1666年8月31日付 日』
 結果:『正正正正正余誤誤誤誤誤誤誤誤誤正』

//前と同じ文字を入力して間違えた場合を「連続誤字」と呼ぶことにする
//連続誤字を続けるとどうなるか?
■1666年
入力文:『 平成1666年8月31日付』
 結果:『正正正正正余誤誤誤誤誤誤誤誤』

入力文:『 平成1666年8月31日付 』
 結果:『正正正正正余誤誤誤誤誤誤誤誤誤』

入力文:『 平成1666年8月31日付 毎日新聞』
 結果:『正正正正正余誤誤誤誤誤誤誤誤誤誤誤誤誤』

入力文:『 平成1666年8月31日付 毎日新聞社』
 結果:『正正正正正余余正正正正正正正正正正正正正』

■16666年
入力文:『 平成16666年8月31日付 毎日新聞』
 結果:『正正正正正余余余誤誤誤誤誤誤誤誤誤誤誤誤』

入力文:『 平成16666年8月31日付 毎日新聞社』
 結果:『正正正正正余余余正正正正正正正正正正正正正』

入力文:『 平成16666666666666666年8月31日付 毎日新聞社』
 結果:『正正正正正余余余余余余余余余余余余余余余正正正正正正正正正正正正正』
//以上の結果から連続誤字はそれ以降に13文字以上正しい文字列が続けば
//期待通り余字と認識される

>------連続誤字のあとの脱字-----<
入力文:『 平成166年8月31日付 日』
 結果:『正正正正正誤誤誤誤誤誤誤誤誤正』

入力文:『 平成166年8月31日付 日新聞社説より引用』
 結果:『正正正正正余正正正正正正正正脱正正正正正正正正正』

入力文:『 平成1666年8月31日付 日』
 結果:『正正正正正余誤誤誤誤誤誤誤誤誤正』

入力文:『 平成1666年8月31日付 日新聞社説より引』
 結果:『正正正正正余誤誤誤誤誤誤誤誤誤正正正正正正正正』

入力文:『 平成1666年8月31日付 日新聞社説より引用』
 結果:『正正正正正余余正正正正正正正正脱正正正正正正正正正』
//以上の結果から連続誤字のあと脱字部分までの文字数をnとすると
//脱字部分からの正しい文字数がn+1以上ならば、期待通り余字・脱字と認識される

>-----連続誤字のあとの誤字-----<
入力文:『 平成1666年8月31日付 朝日新聞社説より引』
 結果:『正正正正正余誤誤誤誤誤誤誤誤誤誤誤誤誤誤誤誤誤誤』

入力文:『 平成1666年8月31日付 朝日新聞社説より引用』
 結果:『正正正正正余余正正正正正正正正誤正正正正正正正正正』

//ここまで連続誤字のあとは期待とは違う結果になると考え、検証してきたが
//前の文字と連続した文字ではなく、関係ない誤字を使った場合どうなるか?

入力文:『 平成16ああ年8月31日付 朝日新聞社説より引』
 結果:『正正正正正余余正正正正正正正正誤正正正正正正正正』
//この結果から連続した文字による誤字でなければ期待通りの結果になる。

>------脱字のあとの正しい入力に関する検証-----<
・何文字以上までの脱字は許されるか?
入力文:『 平成16年日付』(4文字飛ばし:8月31)
 結果:『正正正正正正誤誤』

入力文:『 平成16年1日』(3文字飛ばし:8月3)
 結果:『正正正正正正誤誤』

入力文:『 平成16年31』(2文字飛ばし:8月)
 結果:『正正正正正正脱脱正正』

//3文字以上の脱字のあと、2文字の正しい文字列はすべて誤字としてみなされる

入力文:『 平成16年1日付』(3文字飛ばし:8月3)
 結果:『正正正正正正脱脱脱正正正』

入力文:『 平成16年1日付 』(3文字飛ばし:8月3)
 結果:『正正正正正正脱脱脱正正正正』

入力文:『 平成16年1日付 毎』(3文字飛ばし:8月3)
 結果:『正正正正正正脱脱脱正正正正正』
//3文字以上の脱字のあと、3文字以上正しい文字列があれば脱字としてみなされる

入力文:『 平成16年日付 毎』(4文字飛ばし:8月31)
 結果:『正正正正正正脱脱脱脱正正正正』

入力文:『 平成161日付』(4文字飛ばし:年8月3)
 結果:『正正正正正誤誤誤』
//以上の結果からn文字以上脱字したあと、n文字以上正しい文字列を入力してあれば
//脱字としてみなされるが、n文字より少ない場合は誤字となる

入力文:『 平成16年日付 』(4文字飛ばし:8月31)
 結果:『正正正正正正誤誤無』
//この例はなんでしょう?