しりとりプログラム考察
考え方

「るすばん」のように最後に「ん」が付く場合と次の言葉が捜せない場合の
2種類あることがわかった。つまり最後が「ん」で終わるためには「あいーん」
「いけめん」「うどん」「えーもん」「おじいさん」のように「あーを」で始まり
「ん」で終わる言葉が絶対にないといけない。
まずそれを探すところからはじめないといけないかな?
まあ9万語あるし、50音なのでたぶんあると思う。あるだろう、
あるという前提で作ろう。

●つぎに頭文字とお尻文字の分類である。
頭文字の50音に対しお尻文字の50音の分類をしなきゃいけないきがする。
頭文字=お尻文字、、たとば「しんぶんし」「りりあんかざり」「こだいこ」のような文字は
「はだし」ー>「しまうま」と続くとき
「はだし」−>「しんぶんし」ー>「しまうま」となっても次の言葉には影響がなく文字数が伸びる。
つまりTVでやっていたように「しりとり」の次は「り」で始まって「り」で終わる言葉が来るのはアルゴリズム的に
正しいのであろう。

これはこれで50音分の50セット作ることになる。
問題はその先である。

思ったのだが、、さらに頭文字=お尻文字を作るといいのでは?である。
「しんぶんし」と(「しまうま」ー>「まくらのそうし」)は同じである。
しかしやりすぎると、そのセットを作るのに語をたくさん作ってしまい。
それらをくっつける役目の語がなくなる。この調整が難しいのかもしれない。
「しんぶんし」と「しまうま」−>「まくらのそうし」は同じだ。これは2語のセット。さらに3語のセット4語のセット
といくことになる
つまりアルゴリズム的に
「しりとり」−>「りんご」
があると
「しりとり」−>「りんじだいり」ー>「りんご」
と頭文字=お尻文字語が挿入され
「しりとり」−>「りんじだいり」ー>(「りぼんのきし」−>「しぼり」)ー>「りんご」
と、2語頭文字=お尻文字が挿入されていく。そして3語頭文字=お尻文字。4語、、、と増えていくのでは?
というアルゴリズムを思いついたのである。
おお、これはすでに「しりとり」ではないぞ。挿入遊びだ。
さらにさらに、最後は「ん」の言葉しか選べなくなったとして。「るすばん」で終わったとしよう。

使用していない語を挿入できるかもルーチンがあるじゃないか。
「しりとり」ー>「りんご」ー>「ごるふ」−>「ふりる」−>「るすばん」 で終わったとしよう。
あまった語を2語づつセットする。
たとえば「ふうすい」「いびる」があったとする。
すると、、、「ふりる」と同じ価値であり、「ふりる」と交換でき
「しりとり」ー>「りんご」ー>「ごるふ」−>「ふうすい」ー>「いびる」−>「るすばん」
と増やせるじゃないか。
で、「ふりる」はあまった語入れに入れておく。
これを繰り返すと、かなりいけるのでは?と思う。

プログラム編 これをじっさいのプログラムに直してみる。 処理を簡単にするためにファイルにわけることにする。 大元のファイルが有るとすると。 1語頭文字=お尻文字のファイル 2語頭文字=お尻文字のファイル 最後が「ん」の語のファイル 残りの語のファイル の4つにわけることができる。 只今処理中だが75時間かかる計算だ(笑) なにが時間食うって2語頭文字=お尻文字である。 9万語全部X9万語ループでマッチングをとっているので。 頭のいいみなさんは 頭文字+お尻文字 という簡単化して さらに「あーを」でわけるともっと処理がはやいぞ。 2004/3/5