2025/06/07

[057]双回文のすすめ

靴裏から美しい小石。

[くつうらからうつく しいこいし]

前回、「直線上に規則的に敷き詰めると対称性が生まれる文字列」をアンビドロムと名付けて、それを分類しました。その結果、アンビドロムは次の4種類に分類されました:

 ・回文
 ・畳文
 ・双回文
 ・半整数回文

今回は、このうちの「双回文」について、その面白さをお伝えします。


双回文は回文の自然な拡張


アンビドロムとしての双回文の定義は

(1) 直線上に無限に繰り返して並べると、その全体が線対称になる文字列

というものでした。たとえば「靴裏から美しい小石(くつうらからうつくしいこいし)」は、無限に並べると「か」と「こ」のところで線対称になり、双回文になっています。

回文は(1)を満たすので、双回文の一種です。つまり、双回文は回文を含んでおり、回文の拡張になっています。

一般の双回文はどういう構造になっているかというと、(1)を満たす文字列は、

(2) 2つの回文を並べたもの

になることがわかります。逆に、2つの回文を並べたものは(1)を満たすので、(1)と(2)は実は同じことを言っていることになり、(2)のほうを双回文の定義にしてもよい、ということになります。「双回文」という名称も(2)の性質からつけました。

しかし、(2)を双回文の定義だと思うと、それは回文の「自然な」拡張には見えないと思います。多くの人が、次のような考えを抱くでしょう:

 ・「2つの回文を並べるって何の必然性あるの、つまんなそう」
 ・「2つ並べるのだけを特別視するのはおかしい、3つ並べたのとか4つ並べたのとかも当然考えるべきでしょ」

しかしそういう人も、(1)を見ると違った印象になるかもしれません。要するに双回文とは「繰り返しによって無限の長さの回文を生むような文字列」のことで、ある意味で、有限の長さの回文を無限の長さに拡張したようなものだと考えられ、大いに考える必然性があります(と私は思います)。また、回文を3つや4つ並べたものはこの性質を持ちません。並べる個数が「2つ」だということは本質的なのです。


双回文には「端」がない


双回文を作るにはどうしたらよいでしょうか。双回文は回文を2つ並べたものなので、回文を2つ作って並べる、というのがひとつのやり方です。「トマト食べた」とか。一方、以下のような作り方もあります。これだと回文1つを作るのとほぼ同じ感覚で作れます。

まず、何でもよいので単語を選びます。たとえば「うつくしい」にしましょう。普通の回文を作る感覚で、これを
 「……うつくしい……いしくつう……」
として、「……」のところをしかるべく埋めようとしてみます。ここでは中央の「……」を「こ」にして、「こいし」を作ってみます。すると
 「……うつくしいこいし くつう……」
となります。

でも「美しい小石、苦痛」ではよくわからないので、もう少し伸ばす必要があります。普通の回文なら、前後の「……」を“外側へ”伸ばしていって、どこかでぴったり端になったら完成、となると思いますが、ここで双回文の特性を使って、最後にある「くつう」を前に持っていって
 「くつう…… ……うつく しいこいし」
としてみます。あとはこの「…… ……」を“内側へ”向かって埋めればよく、
 「くつうらからうつく しいこいし」(靴裏から美しい小石)
という双回文ができました。

この作り方を見ると、やっていることは普通の回文づくりとほぼ変わらない、ということがわかると思います。ただし目立った違いもあって、それは

 ・双回文には、普通の回文に2箇所ある「端」が存在しない

ということです。

普通の回文を作る方は、回文のなかでその両端が非常に特殊な位置だと認識していると思います。回文の最初の字はそれより前に文字列が伸ばせず、回文の最後の字はそれより後に文字列が伸ばせません。そこでぴったり文が途切れている必要があり、辻褄合わせが難しくなります。

上記の作り方をみればわかるように、双回文には端の困難がありません。一見すると端は存在するのですが、それが逆側の端と「つながって」いて、途切れていないのです。

端がない代わりに、

 ・双回文には、普通の回文では1箇所しかない「折り返し地点」が2箇所ある

という違いもあります。回文の折り返し地点はもっとも自由度が高く、そこで辻褄合わせする、というのがよくある作り方ですが、その折り返し地点が双回文では2倍に増えています。

これらの特性から、双回文は普通の回文に比べて、圧倒的にストレスなく作れることが想像できると思います。(難易度は下がるのでつまらなくなると思う方はいるかもしれませんが。)


双回文のシフト変換


双回文には非常に面白い性質があります。勝手なところで2つに分割し、前後を入れ替えても、また双回文になるのです。たとえば

 玉子丼、鯖サンド、ごま高菜、餅もなか
 [たまごどんさばさんどごまた かなもちもなか]

という双回文を「餅もなか」の前で切って前後を入れ替えると

 餅もなか、玉子丼、鯖サンド、ごま高菜
 [もちも なかたまごどんさばさんどごまたかな]

となり、やはり双回文ですし、「高菜」の直前で切って入れ替えると

 高菜、餅もなか、玉子丼、鯖サンド、ごま
 [たかなもちもなかた まごどんさばさんどごま]

となってやはり双回文です。どこで切ってもよいのです。

「切って前後を入れ替える」操作を「シフト変換」と呼ぶことにすると、この性質は
 「双回文をシフト変換するとまた双回文」
と表現できます。

双回文のこの性質は、双回文の1つめの定義

(1) 直線上に無限に繰り返して並べると、その全体が線対称になる文字列

からすると当たり前のことです。(前後を切って入れ替えても、無限に繰り返して並べた結果は同じになるから。) 一方で2つめの定義

(2) 2つの回文を並べたもの

からすると、この性質が成り立つことは、よくよく考えないとわからないと思います。たとえば回文を3つ並べた文字列にシフト変換を施すと、もはや回文3つを並べた文字列になりません。シフト変換で性質が変わらないことは、回文2つだからこそ成り立つのです。なんだか不思議です。

シフト変換は、たんに面白いというだけでなく、双回文を作るうえで役に立ちます。たとえば

 煮ろ、釜でマカロニ。
 [にろかまでまかろに]

という回文がありますが、これはいかにも語順が不自然です。そこで、回文が双回文の一種であることを利用して、これをシフト変換してみますと、

 釜でマカロニ煮ろ。
 [かまでまか ろににろ]

と自然な語順の双回文ができます。さらに、折り返し部分に一文字足して

 釜でマカロニを煮ろ。
 [かまでまか ろにをにろ]

とするとなおよいですね。


実は、畳文も、シフト変換によってまた畳文になる、という性質をもちます。たとえば

 カニ・ワニ・イルカ、庭にいる。
 [かにわにいる かにわにいる]

という畳文をシフト変換して

 庭にいるカニ・ワニ・イルカ。
 [にわにいるか にわにいるか]

としても畳文です。これも、畳文がアンビドロム(正確に言うなら、並進敷詰によるアンビドロム)であることから来ている性質だとも考えられます。アンビドロムという枠組の意義が感じられます。


双回文は楽しいよ


綺麗な対称性があり、回文と同じ感覚で作れる双回文、ぜひ作ってみてください。第一印象よりもずっと面白いと思います。

0 件のコメント:

コメントを投稿