’05年11月17日

 囲碁の手数の変化とコンピューターについて考えてみる。
簡単のために第1図、第2図のような碁盤について考察する。

1.4路盤の手数の変化
 第1図の4×4の盤では第1手目に黒石を置くことが出来る場所は16ヶ所。次に第2手目の白石を置くことが出来るのは最初に黒が置いた場所を除いた15ヶ所である。したがって第2手目までの黒石と白石を置く手数の変化の数は 16×15=240 通りあることになる。
 
 このようにして、第3手目に黒石を置くことが出来る場所は13ヶ所、第4手目の白石の場所は12ヶ所と、手数が進むにつれて石を置くことの出来る場所が1ヶ所ずつ減少し、最後の16手目には白石を置く場所は一つしかないことになる。

 第3手目までの手数の変化は 16×15×14=3,360 通り
 第4手目までの手数の変化は 16×15×14×13=43,680 通りである。

 以下 16×15×14×13×12×・・・・・・・・・・×3×2×1 となり、これは
16!(16の階乗)ということになる。これを計算してみると
16!(16の階乗)=20,922,789,888,000 (20兆9227億8988万8千)
という値が得られる。

2.5路盤の手数の変化
 1項と同じように考えれば第2図の5×5の盤の手数の変化の数は 25!(25の階乗)となるが、この階乗値を計算するとなると途端に気力がなくなってしまったので、概算値だけを示すとその値は約16(じょ)となる。

 (じょ)という漢字は JIS の標準漢字表にはない字で(禾偏に予)と書き、

 一、十、千、万、億、兆、京(けい)、垓(がい)の一つ上位の桁のことである。

 この桁のところは(し)という漢字(この漢字も JIS にはなく、偏は”禾”だが”つくり”の字がないので表現することが出来ない)をあてることもある。

 以上のことから碁盤の縦横の線が夫々1本増えるごとに変化の手数が飛躍的に大きくなることが予想され、19×19=361階乗の値(361!)が前回述べたような天文学的な値以上(囲碁について(3))になることが理解出来るのである。

 次回はこれらの変化の手数をコンピューターで調べたらどの位の時間がかかるかについて考えてみる。
 


     ’05年11月18日
 現在のパソコンでは2Gないし3G位の周波数(クロック)のCPUが使われているが、これらのCPUのニーモニックが分からないので、MS−DOS時代のZ−80(CPU)の場合で計算し、それを元に推定することにする。

 CPUの周波数をFとすると、その逆数 1/F をクロックサイクルという。Z−80の場合、その周波数は最高でも 10Mhz であるから、クロックサイクルの値は 1/(10の7乗)=0.1μs(千万分の1秒)となる。

 今、碁盤上に碁石が置かれているかいないかを調べるとすると、例えば碁盤上に石がある状態を ”1” 、石がない状態を ”0” として、そのデータを予めコンピューターのメモリーに入れておき、そのメモリーの状態を調べるニーモニックは最も単純に考えた場合、

 LD  A,(HL) :メモリー番地にあるデータ(碁盤上に石があるかないか)をAレジスタに代             入
 JP  Z,○○○○ :Aレジスタのデータを判定して、次の処理を行う 〇〇〇〇番地へジャンプ             する
としてよいであろう。

 上記の場合のニーモニックのクロックサイクルは夫々 ”7”、”10”であるが、両方で ”20”とする。

 したがって盤上の1ヶ所を調べるのに要する時間は0.1×20=2μs(2百万分の1秒)になり、

(1) 4×4の盤上の石の有無を調べる時間は (20兆9227億8988万8千)×2百万分の1秒
 となる。この結果は概略4200万秒、時間に直すと約11,111時間である。

 以上の結果を現在使用されているパソコンに適用する。

 3GのCPUは32ビットであるから8ビットのZ−80に比べて4倍のスピードがあるとし、クロックサイクルは300倍速いから、両方で1200倍のスピードということになる。

 したがって3Gパソコンでの処理時間は 11,111÷1200=約9.3時間 ということにる。

(2) 次に 5×5の盤の場合はどうなるかであるが、考えるだけで気が重くなる。
 手数の変化は 4路盤に比べて
 (16×(10の24乗))÷(21×(10の12乗))=約 8×(10の11乗)倍
多いから、必要な時間は
 9.3×8×(10の11乗)=約74×(10の11乗)時間
ということになる。日数に換算すると約 3×(10の11乗)日、即ち約8億年という途方もない時間になる。

 たった25ケ所の石の有無の調査に8億年もかかるということなど、計算違いではないかと俄かには信じ難いが、何度考え直してもこういうことになる。

 根気と暇のある方がおられたら是非確認してみて下さい。