「しりとり」の戦いかた、すこし反省した

「しりとり」は経験者人口が極めて多いゲームだけど、鬼神のごとき強さで他を圧倒するしりとりプレイヤーを私は知らない。ちょっと真剣に戦ってみたところで、

そんな程度のレベルで満足していやしないか。

さいしょは「る」の同字返しでガッチリ組み合う。先に「る→る」のストックが切れて、「る」で返せなくなったほうがひたすら「る攻め」で投げられ続ける。

小学生の時から進歩していないような、こんな大雑把でマンネリな「る攻め」戦略から脱却できないものか。

攻撃防御比最大の最強文字「る」

復習。周知の事実だが「る」は強い。

下の表は、[A](文字Xで終わる単語)と、[B](文字Xではじまる単語)をその比[A/B]の高いものから順にリストしたものである。標本の単語数は20万語であり豚辞書から、伸ばし棒をトリムした上で抽出した。*1

文字X[A]Xで終わる単語[B]Xで始まる単語[A/B]
1位43235208.313
2位2129835705.966
3位ず/づ14462595.583
4位1221137313.273
5位684424022.849
6位760927152.803
7位1799265682.739
8位441420602.143

表の[A/B]を見てわかるように、「る」は格別の強さを誇っている。*2「る」でおわる単語は平均値とほぼ同じなので攻撃しやすいが、「る」ではじまる単語はその1割強しかないため守る側は非常に苦労する。しりとりのために生まれてきた文字だ。

辞書をパラパラみて「この文字ではじまる単語は少ないから強いはずだ!」と安直に選ぶべきではない。表外になるが、[B]が「る」より少ない希少文字として「ぽ」「ぬ」「ぺ」「ぞ」などが存在する。しかし、それらの単語は[A](その文字で終わる単語)が少ないという問題を抱えている ([A/B]<1)。こいつらは守るのが難しい以上に攻めるのが難しい。

「る」の代王、その名は「ず」?

[A/B]で次点の「う」は高いスコアをたたき出しているが、日本語の約1割が「う」で終わるという特殊事情による。「う」で始まる単語は十分に存在しているため「う攻め」は難しい。*3

ちなみに、思いついた単語が「ん」で終わってしまい使えないことがしばしばあるのは、「ん」で終わる単語が最も多く2位の「う」を抑えて14%に達していることによる。

「る」の代替候補としては「ず/づ」がある。「る」は対策されることがあるため、「ず」を保険に持っていて損は無い。「ず」ではじまる単語を20個以上思いつく人は少なく、未対策の相手なら簡単にひねれるだろう。

「ず」で戦う場合の注意点は2点挙げられる。

1つ目は、「ず→ず」の同字返しが「る」より希少であることだ。20万語の探索では「数珠(ズズという読みがある)」と「ズームレンズ」の2単語しかなかった。「ず攻め」されたとき、貴重な同字返しを即座に使うべきか迷うところだ。

2つ目だが、[A]が「る」の1/3しかない。どっちも4桁以上あるんだから勝負に支障はでないだろうと思うのは間違い。広辞苑を暗唱できない普通の人間が使えるストックは表の数値より桁のレベルで少ない上に、一度につかえるのは50音のうち相手が指定したどれかの文字で始まる単語に限定される。常に適切な「ず攻め」単語が用意できるとは限らず、攻めに穴があいてしまえば惨事になる。


表に載っていない文字はどうなの?

「俺/私の大好きな『む攻め』『れ攻め』『ろ攻め』(ry はどこだー!」

これらは若干希少であるため強いと思われがちだが、以下の理由により実際にはそれほど怖くはない。

  1. [A/B]≒1であり、攻撃側と防御側が互角。
  2. その文字で始まる単語は意外に多く、決定打に欠ける。

防御側も1000単語は存在していることが大半だ。

文字目線からの脱却:ノードからグラフへ

いままで文字の強さについて考えてきた。

だが、それで満足していいのだろうか。

「る」に偏りがあるので「る攻め」します。「ず」が強いので「ず攻め」します。

われわれは、こんな安直な小学生レベル戦略から脱出し、せめて中高生レベル戦略へと前進する必要がある。

「『しりとり』とは何か?」
「『しりとり』とはいかなる構造をもったゲームか?」
「『しりとり』はの戦略はどこに向かうのか?」
「すべての単語が確定され、そのすべてを完全に記憶し、数十万手先までも瞬時に計算のできる存在同士が『しりとり』で戦ったらどのような様相を呈するのか」

その文字で(はじまる/おわる)単語の数を勘定するだけの荒い描像では、「しりとり」の局面がもつ膨大な情報のほとんどを取りこぼしてしまう。より深い理解のためには、文字をつなぐ何十万という単語で織りあげられた巨大で複雑な遷移ネットワークの全てを記述できるような仕組みがあるといい。

そのための数学的な道具はよく整備されている。任意の単語セットで構成される「しりとり」は文字をノードとする有向グラフによって記述できる。それは一般に多重辺(どちらも文字Xiではじまり文字Xjで終わるが、異なる単語の組)やループ(同字返し)を含む。


人間にも可能な「しりとり必勝法」は存在するようだ

では実際に中高生レベル戦略を考えてみる。

ここでは一騎打ちによるガチバトルを想定する。というのも、3人以上の「しりとり」は隣り合う2人が結託すればなんだってできるクソゲーで、1手の差が勝負をわけるような細かな戦略もなにも無いのでとりあえず脇に置いておこう。まあ、3人以上の戦いで1人が執拗に「る攻め」をしても、勝負を決するほどの有効打にならないし、ちょっとKYだ*4

あと、実際の「しりとり」は完全情報ゲームにはほど遠いが、プレイヤーは日本語のすべての単語を暗記する究極生命体であると仮定し、単語の語尾が何の音に対応するか、この単語はアリかナシかみたいな議論は全て片付いた後としよう。また、薬を飲まされたり、180時間の断眠の後とかではなく、双方が万全の態勢で臨むものとする。

アリ地獄、終端文字、万能アタック

任意の文字数と言語による単語セットでつくられる一般のグラフについて考えた場合はとても解ける代物ではないそうだが、日本語(豚辞書)の場合は「る」の周りが特殊でつまらない構造をしているため、比較的簡単に必勝解が得られてしまう。

「る」の同字返しが偶数個の状態で「る攻め」を仕掛ければ必勝。

「任意の文字Xiに対して(XではじまりXiでおわる単語の数)が(XiではじまりXで終わる単語の数)を超えない。」を満たす文字Xが存在するときこれを「終端文字」と呼ぶことにする。終端文字は常に存在するとは限らず、たとえば4つの単語で構成される言語A={abb,bc,ca,a}に終端文字は存在しない。しりとりには、

プレイヤーが互いに最善手を打つとき、任意の文字Xi,Xjに対して(Xiで始まりXjでおわる単語)と(Xjで始まりXiで終わる単語)の組を加えたり除いても勝敗は変らない

という性質があるため、終端文字は「その文字で始まる単語が存在しない文字」と等価である。一旦その文字に入り込むと脱出は不可能だ。受け手がどんな文字に逃げても、それを押し戻すだけの十分な単語が存在する。

一般に「最強文字≠終端文字」だが、日本語(豚辞書)に関して言えば、最強文字「る」がそれに該当する。「る」は任意の文字Xに対して『 N(X→る) ≧ N(る→X) 』であり、袋小路になっている。(同字返しを除けば)十分な単語を記憶したプレイヤーの「る攻め」からのがれられない。「十分な単語」という条件だが、高々「る攻め」を500単語程度でストックするだけであり、広辞苑クラスを丸呑みする必要は無い。

残る問題は「る→る」同字返しだが、ループ(同字返し)は終端文字であるか否かに依らず偶奇性だけが勝敗を決定する。で、この場合は偶数個のときに「る攻め」が勝利条件、奇数個の時は同字返しで逆にる攻めを掛けられることになるので必負だ。この場合、誰も「る攻め」に手をつけられない。ちなみに今回用いた「豚辞書」では「る」の同字返しは12個だという。この場合、「しりとり→リール」の時点で勝利確定。

将棋やチェスと違い、しりとり必勝法は普通の人が手を伸ばせばとどく範囲にある。

なんともつまらない結論だ。*5

大量破壊兵器コワイヨ:「づ攻め」「ぢ攻め」「を攻め」「ゑ攻め」

さて、少し話を変えて、もうすこし集団戦で使えそうな技を考えてみる。

いままでの話では、「じ」と「ぢ」、「い」と「ゐ」の類は区別してこなかった。通常のゲームでこれらの文字は区別されない。これらの文字を分離してしまうと、あまりの強さに、最強文字「る」ですら霞んでしまう。多分、いままでの話も大きくかわるだろう。「づ」と「ぢ」で始まる単語は最強文字「る」の 1/100以下だ。どちらも片手で数えられるレベル、知らなければまず返せない。「づ攻め」は「根津」「木更津」「島津」などの津シリーズが有名だ。

「鼻血。あー、これ「ち」に「゛」だから。ちなみに「痔」は「し」に濁点だよ。」
「ぢ!?・・・・・、えー、あんの?」

「を攻め」や「ゑ攻め」も一撃でプレイヤー全員を皆殺しにできるほどの威力だ。「しんべヱ」→「ヱビスビール」「ヱヴァ」の返しができる人は絶無に近い。

ただ、これらの攻めは、その単語リストが周知され、対策さえ済んでしまえば無敵とは言えなくなる。

単語を出す順番について(マルチプレイ)

「しりとり」は他の人があまり知らないマニアックな単語を連発して悦にいるより、みんな知っている単語を優先的に潰すほうが合理的な戦術とされることが多い。「しりとり」は単語のストックを温存するゲームである。自分だけが知ってる単語を言えば、自分だけがストックを減らすことになるが、みんなが知っている単語を言えば、全員のストックを減らすことができる。前者は1手損だが、後者はプラマイ0である。序盤での無駄な消耗は簡単な単語が尽きてきた終盤において重たく効いてくる。逃げ道が無くなるのだ。

PSPACE完全問題:より深い「しりとり」の理解を目指して

ふたたび話を、ハミルトンゲームな2人プレイに戻す。大学レベルのしりとり戦略はどうあるべきか。

日本語(豚辞書)は構造が簡単だったが、一般の「しりとり」で必勝解を探すのはもっと大変である。

適当な辞書があたえられたとき、その勝敗判定はPSPACE完全問題だそうだ。チューリングマシンでテープの長さが問題のサイズの多項式くらいの領域で解ける問題のなかで最も難しいヤツ。

適当な言語をつくって遊んでみたけど、森をさまよう霧のごとく、自分が有利な方向に向かっているのか不利な方向に向かっているのかすら掴めない。

ちゃんと遊べるようになるにはまだまだ。

*1:豚辞書はクロスワード作成用辞書であり、すこし偏りがあるかもしれない。より一般的な標本としてATOKの辞書ファイルから名詞を抽出したかったのだが、簡単に取り出せそうにはなかった。

*2:ちなみに最弱文字は「へ」、[A/B]が1%台という驚きの弱さ。

*3:[A/B]は単純な指標だから使っているだけで、強さの目安にすぎない。

*4:そのKYの中にときどきわたしが含まれているけどね。

*5:一応、この必勝法が「今回用いた辞書では」ということはすこし強調しておく。「る」が終端文字であるというのは他の辞書でも成り立ちそうだが、「るの同字返しの数」については、たった1単語が加わっただけで勝敗が反転するため、辞書ごとに安定していないだろう。ただ、辞書さえ確定してしまえば、勝敗は容易に判定できるものと思われる。