本書で提出した「仮説」は、仮説 百人一首と百人秀歌における「五歌仙」の番号は「凶」の字を隠した暗号であるというもので、その最終的な正否は、無論、百人一首の選者である藤原定家のみぞ知る。だが、この種の問題については、それなりに科学的な考察をすることが可能であり、この小論では、この仮説が「どれくらい偶然の可能性があるか」を確率論の立場から論じてみたいと思う。

  ナーンテ、まじめくさってみても、だめだな。ま、エンタテイメントの延長ということで、軽い気持ちでお読みくだされ。数学が苦手な人は、最後の結論だけ読んでね。まず、虚仮威(こけおど)しのプログラムから。


■五歌仙の符合が偶然に生じる確率を計算するためのモンテカルロ法のプログラム

(湯川薫が自分で書いたもの。おかしな点などございましたら、ご指摘くだされ。あ、ただし、「下手なプログラムだ」というのはなし。(笑))




※説明:HI(5)とHS(5)は5個の配列で、百人一首と百人秀歌の五歌仙の番号。WA(5)は、その番号を足した和。bunboとbunshiは、確率の計算における分母と分子。bunboは巨大になるので、桁数が大きくても大丈夫なようにしてある。

DIM i,hata,bunbo#,bunshi,HI(5),HS(5),WA(4)
bunshi=0
bunbo#=0#


※説明:分子が5より小さい間、繰り返し、計算を続ける。RNDで乱数を発生させて、五歌仙の番号にする。

while bunshi<5
hata=0
FOR i=1 TO 5
HI(i)=RND(100)
HS(i)=RND(101)
NEXT i


※説明:ただし、たとえば、小野小町と在原業平の番号が同じになってしまったような場合は、乱数の発生が実情と合わないので、oopsまで飛んで、もう一度、最初からやりなおす。

for i=1 to 4
if HI(1)=HI(i+1) then "oops"
if HS(1)=HS(i+1) then "oops"
next i
for i=1 to 3
if HI(2)=HI(i+2) then "oops"
if HS(2)=HS(i+2) then "oops"
next i
for i=1 to 2
if HI(3)=HI(i+3) then "oops"
if HS(3)=HS(i+3) then "oops"
next i
if HI(4)=HI(5) then "oops"
if HS(4)=HS(5) then "oops"


※説明:乱数の発生がうまくいったら、とりあえず試行を数えるということで、分母に1を足す。

bunbo#=bunbo#+1#

※説明:五歌仙の和の間に「関係」があるかどうかが問題だが、和が101を超えると文屋康秀の番号にはなりえないので、それ以降の計算をやめて、oopsに飛んで、最初からやりなおし。(注:この部分は、それ以降の計算の無駄を省くためにあるので、本質的ではない。たとえば、和が101ちょうどの場合などは、これ以降の計算で吟味される。)

for i=1 to 4
WA(i)=HI(i)+HS(i)
if WA(i)>101 then "oops"
next i


※説明:この部分、必要なし。(笑)膨大な計算なので、途中経過を画面に表示していると計算が遅くなってしまう。問題となっている「関係」がみつかったときだけ、画面に数字を表示すればいいのだが、そうすると、あまりにも確率が低いため、何十分も画面に表示がでないので、不安になってしまう。だから、条件をゆるめて、和のうちの一つだけが文屋康秀の百人一首の番号に一致する場合に画面に数字を表示させたもの。それだけ。

if ((WA(1)=WA(2) and WA(3)=WA(4)) and WA(1)=HI(5)) then print bunbo#,WA(1),WA(
2),WA(3),WA(4),HI(5),HS(5)


※説明:四人の歌仙の番号の和が一致し、なおかつ、五人目の文屋康秀とも一致する場合に、「旗」があがる。(hata=1になる)

if (WA(1)=WA(2) and WA(3)=WA(4)) and ((WA(1)=HI(5) and WA(3)=HS(5)) or (WA(1)=
HS(5) and WA(3)=HI(5))) then hata=1
if (WA(1)=WA(3) and WA(2)=WA(4)) and ((WA(1)=HI(5) and WA(2)=HS(5)) or (WA(1)=
HS(5) and WA(2)=HI(5))) then hata=1
if (WA(1)=WA(4) and WA(2)=WA(3)) and ((WA(1)=HI(5) and WA(2)=HS(5)) or (WA(1)=
HS(5) and WA(2)=HI(5))) then hata=1


※説明:旗があがったら、条件を満たしているので、分子に1を足して「数える」。そし
て、その条件を満たした数を画面に表示するために「yes」に飛ぶ。

if hata=1 then bunshi=bunshi+1
if hata=1 then gosub "yes"
"oops"
wend
END


※説明:五歌仙の番号の間に問題となる「関係」が生まれた場合に画面に数字を表示する
サブルーチン。

"yes"
for i=1 to 4
print HI(i),HS(i),WA(i)
next i
print HI(5),HS(5)
print bunshi,bunbo#
return



※futurebasic用プログラムファイルはこちら
  futurebasicのデモ版はstazsoftware.comにて入手可能です。



  これは、BASICという、いまどきの高校で誰もが教わる言語で書いてある。虚仮威しというのは、プログラムを書いたことがない人間が見たら、なにか大層なことをやっているように見えるが、プロが見たら、「五分くらいで書いたな」と、バレてしまう代物だからだ。(笑)で、実際に五分くらいで書いたものなので、バグがあるかもしれない。気がつかれた方は、ご一報あれ。

  といいつつ、ちょっと解説してみよう。このプログラムは、いわゆる「モンテカルロ法」で書かれている。こんなシチュエーションを思い浮かべていただきたい。

【シチュエーション】
東京のお台場のカジノには、ルーレット台が二台ある。なぜか、片方は、スロットが100個あって、もうひとつは、スロットが101個ある。二台同時にルーレットを回して、その番号を記録する。それを五回くりかえす。

  これが、百人一首の暗号とどう関係するのか、もう、おわかりだろう。百人一首は100首ある。百人秀歌は101首ある。まず、百人一首のカルタを適当に切って、1番から100番まで、並べてみる。そして、五歌仙の番号を記録する。たとえば(!)、

  花の色はうつりにけりないたづらに
  我が身世にふるながめせしまに
          小野小町(3番)

  わが庵は都のたつみしかぞ住む
  世をうぢ山と人はいふなり
          喜撰法師(12番)

  ちはやぶる神代もきかず龍田川
  からくれなゐに水くぐるとは
          在原業平(29番)

  あまつ風雲の通ひ路吹きとぢよ
  乙女の姿しばしとどめむ
          僧正遍昭(98番)

  吹くからに秋の草木のしほるれば
  むべ山風をあらしといふらむ
          文屋康秀(5番)

と、なるかもしれない。トランプを切るのと同じだから、五歌仙の番号は、完全にランダムになると考えられる。その番号を記録する。

   3、12、29、98、5

  次に、同じことを百人秀歌のカルタでやってみる。(そんなカルタは存在しないが、97首までは、百人一首と同じなので、それを流用する。あとの4枚は、それに似せてこしらえる!)仮に、五歌仙の番号が、

   87、6、44、73、2

だったとしよう。この場合、二つの歌集の五歌仙の番号の間には、あまり「意味」のある関係がないように見受けられる。少なくとも、実際の二つの歌集の五歌仙の番号のような、

   9、8、17、12、22
   13、14、10、15、27

という「符合」はみられない。ええと、符合というのは、最初の4人については、上の段と下の段を足すと(=百人一首の番号と百人秀歌の番号を足すと)、

   22、22、27、27

になって、この22と27が、五歌仙の最後の文屋康秀の番号になる、という関係である。つまり、トランプを切るように、ランダムに番号を振った場合、このような特殊な「関係」は生まれにくい、ということだ。

  だが、何百回も何万回もカルタを切っていたら、偶然、こういう関係が生まれることもあるのではないか?たしかに、そのとおりなのである。

  だが、問題は、「何回切ったら、こういう関係が(偶然に)生まれるか?」である。その回数は計算することが可能なのだろうか? もし、可能なら、五歌仙の番号にみられる「関係」が偶然である確率は、単純に、

   1/その回数

ということになる。

  それで、カルタを切る代わりに、ルーレットを回して、ランダムに五歌仙の番号を「生成」してみて、この回数を求めることができるのだ。そういう計算法は、物理学のシミュレーションでは広くつかわれていて、「モンテカルロ法」と呼ばれている。

  さて、そのモンテカルロ法の計算である。こんなふうにやる。まず、(パソコンの中で)二台のルーレットを五回ずつ回して、その番号を記録する。こんな具合に。

ルーレット1 x、y、z、u、v
ルーレット2 a、b、c、d、e

  この番号の間に、以下のような関係があれば、とりあえず、百人一首と百人秀歌にみられる五歌仙の番号の「関係」が再現できたことになる。

   x+a=y+b=v
   z+c=u+d=e

 つまり、和が22と27であることにこだわらず、他の番号でもいい、と条件を緩和
するのである。とにかく、こういう奇妙な「関係」が偶然に生まれる確率を計算したい
のである。で、このルーレットのランダムな番号の生成は、プログラムでは、

   RND(ランダム!)

という命令によっておこなわれる。気が遠くなるほど、何回も何回も、ランダムな数を生成しつづけて、そのうちの何回が条件に当てはまるか、数えるのである。そうすれば、確率が求まる。プログラムを走らせてみると、だいたい、10億回に5回くらいの割合で、特殊な「関係」が生まれることがわかった。

  だから、確率は、ほぼ、

   5/10億=1/2億

くらいになる。

  つまり、
『五歌仙の番号にみられるような「符合」が偶然である確率は2億分の1』というのが数学的な結論である。(冒頭に掲載したプログラムでは、あらかじめ、そういう数の符合が五回生じた時点で計算を打ち切っている。本来は、もっと長く計算をしつづけないといけない!)ま、この話、どれくらい、22とか27という数字そのものに意味があるのか、また、小野小町と在原業平の番号は逆さでもいいのか、など、論じはじめたら、さまざまな問題がでてくる。

  そういった細かい論点は、ここでは、触れない。あくまで、エンタテイメントなので。

  さて、この数字の符合に最初に気づいたのは、『百人一首の魔方陣』(徳間書店)という著書のある太田さんである。太田さんは、この本で、さまざまな数字の符合を論じていて、そこから、「百人一首は10かける10の魔方陣になっている」という仮説を提唱された。この本は、確率などの考察によって、整理しなおすと、かなり面白い内容が含まれていると思う。

  ちなみに、私は、10かける10の魔方陣という仮説に対しては、態度を留保しているのだが――。

  さて、次に、数字の符合ではなく、陰陽五行にまで話をひろげて、五歌仙の番号から「凶」の字が出てくる確率も計算してみよう。今度は、モンテカルロ法ではなく、手計算でやってみる。陰陽五行といっても、数学的には、ようするに、

   6     1
   7     2
   8     3
   9     4
  10     5

という具合に、1から10までの数字を二列に分けて並べて、五歌仙の番号を結んでゆくと、それが「凶」の字になるかどうか、という問題である。10より大きい数字については、もちろん、66なら6、35なら5という具合に一桁目だけに注目すればいい。

  ちょっと現代的な考えになってしまうが、こう書いたほうが、現代人には、わかりすいにちがいない。本書の第二章で五島爺さんが発見したようなパターンで、逆さまの「凶」の字が出てくるには、五歌仙の番号(の一桁目)が、

   3、4、2、7、2
   9、8、5、0、7

という具合になっていないといけない。これは、たとえば、

   8、7、5、3、7
   4、0、2、9、2

というように、上下が入れ替わってもかまわないし、五歌仙の中における順番が入れ替
わってもかまわない。

  ようするに、「3と9」、「4と8」、「2と5」、「7と0」、「2と7」という5つのペアが、生成されればいいのだ。ただし、百人一首は100の番号の可能性があり、百人秀歌は101の番号の可能性があることを忘れてはならない。で、問題が複雑になるので、「凶」の字になるには、

   「2と7」の代わりに「1と6」でもいいじゃないか

というような可能性は、ここでは考慮しない。同様に、「凶」の字が逆さまでない可能性も考えない。(問題としては、さほど困難ではないが。)

  確率を計算するときは、やはり、ルーレットを思い浮かべるのがやりやすい。ルーレットで、最初の試行で、

ルーレット1   3
ルーレット2   9

という組み合わせが出るのは?

  ルーレット1の番号は、3、13、23、33,43、53、63、73、83、93の10通り。ルーレット2の番号は、9、19、29、39、49、59、69、79、89、99の10通り。10かける10で100通り。

  同様に、

ルーレット1   9
ルーレット2   3

という、上下が逆の組み合わせも、100通りある。だから、「3と9」がペアになってあらわれる組み合わせは、上下も含めて、計200通りあることになる。

  同じように数えると、「4と8」、「2と5」、「7と0」、「2と7」というペアも、それぞれ、200通りある。いや、最後の「2と7」の場合、すでに、2も7も、一回ずつ出てしまっているので、(100-1)=99通りしか、ありえないから、99の2倍で182通りですな。(ここは、数学科出身の間中千元氏からご指摘を受けた。)

  さて、ルーレット1には100個の番号の可能性があるのだ。ルーレット2には101個の番号の可能性があるのだ。だから、最初の試行で出る番号の可能性は、100×101通りもある。だから、最初の試行で、「3と9」というペアになる確率は、

   200÷(100×101)

になる。

  続けて、次の試行で「4と8」になる確率は、

   200÷(99×100)

になる。分母が1ずつ減ったのは、ルーレットのある番号が「出たら」、そこは埋めてしまって、二度と出ない、という意味だ。ちょっと変かもしれないが、カルタの場合、最初に小野小町の番号が決まってしまった時点で、「その番号」は、他の歌仙に振られることはありえない。その番号は「予約済み」なのである。

  続けて、3回目の試行で「2と5」になる確率は、

   200÷(98×99)

であり、4回目の試行で「7と0」になる確率は、

   200÷(97×98)

であり、最後の試行で「2と7」になる確率は、

   182÷(96×97)

になる。

  というわけで、確率は、これをすべて掛け合わせたものなのだが、まだ、ひとつ、忘れていることがある。

   3、4、2、7、2
   9、8、5、0、7

という5つのペアの組み合わせについて、上下が変わってもかまわない、という点は考慮済みである。だが、たとえば、小野小町が「3と9」で在原業平が「4と8」なのか、それとも、小野小町が「4と8」で在原業平が「3と9」なのか、という可能性も考慮しなくてはいけない。それは、ようするに、どの数字のペアが、どの歌仙に割り振られるか、ということで、ペアを崩さないで、順番を並べ替えてもかまわない、という意味である。その並べ替えは、

   5!=5×4×3×2×1通り

ある。これを確率にかけないといけない。

  てなわけで、百人一首と百人秀歌をランダムに並べた場合、五歌仙の番号から、「凶」(の逆さま)が偶然に出現する確率は、

   5!×200^4×182÷(100×99×98×97×96)÷(101×100×99×98×97)=4.07×10^(-7)≒250万分の1くらい

  250万分の1の確率で、このような出来事が人為的にではなく、まったく偶然に起きる可能性があるということだ。単純計算ですが。「凶」の字が逆さまでない場合や真ん中の「×」の部分がズレる場合を考慮しても、この数字は、一桁くらいしか改善されない。結論として、数字の符合が、偶然であるのは、数10万分の1から100万分の1くらいということになる。

  ナーンダ、と思われるかもしれない。だが、この数字の意味を考えてみると、思わず、背筋がゾクッとするにちがいない。なぜなら、この数字は、

百人一首と百人秀歌のカルタを何十万回も「切って」ランダムに並べた場合、そのうち
の1回だけ、「凶」の字が出現する

ということを意味するからである。つまり、偶然であるには、あまりにも確率が低すぎるのである。誰かが人為的に数の符合を仕組まないかぎり、「凶」の字があらわれる可能性は、きわめて低いのである。

  私としては、これが偶然ではなく、実際に定家か、その周辺の誰かが、実際に怨霊を封じ込めるために五歌仙の番号を意図的に選んだのだとしか思えない。当時の和歌および歌人の文化・歴史的な背景を考慮すれば、それが、まんざら嘘でもないことは明白であろう。ただし、学問的には、そのような「秘密」が伝授されていたことを証明する文献的な証拠が必要だ。そもそも、和歌の「秘伝」を書き残すという行為自体、秘伝を否定する危険性をはらんでいるのであってみれば、そのような証拠が発見される可能性には懐疑的にならざるをえない。

  うーん、冷泉家の古文書に、反古(ほご)紙にみえる、メモのようなものが残ってないかなぁ。恭介に調査を依頼するしかないか。ま、真相は、歴史の「夢」ということで・・・。


湯川薫