理論上発生し得るチェスの異なるゲーム数は驚くほど大きく、約 10¹²⁰(120桁のゼロが続く1)と推定されています。この数字は、標準的なチェス対局における全ての合法手順列を考慮した結果から導かれます。

2026/01/28 4:59

理論上発生し得るチェスの異なるゲーム数は驚くほど大きく、約 10¹²⁰(120桁のゼロが続く1)と推定されています。この数字は、標準的なチェス対局における全ての合法手順列を考慮した結果から導かれます。

RSS: https://news.ycombinator.com/rss

要約

日本語訳

改善された要約

この記事では、フェルミ方式の計算とKnuth のパスプロダクト法を用いて、短いチェスゲーム(≤ 100 半手)における可能性のあるゲーム数が約 (10^{15}) であると推定しています。
単一のサンプリングされたゲームでは、パスプロダクト (p(g)=10^{16.96179})、すなわち約 (10^{17}) が得られます。1 万件の独立したサンプルを取ると、平均対数(log‑10)推定値は 15.1 ですが、この数字には大きな標準誤差が伴い、その信頼性に疑問が残ります。サンプル数を 100 万件まで増やすと平均が 15.151 に安定し、(10^{15}) の数量級の推定を支持します。
Knuth の定理 (\frac{1}{|G|}\sum_{g}p(g)=|G|) は、期待パスプロダクトを用いて (|G|) を近似できることを正当化しています。より単純なフェルミ手法(各局面で 46 手合法、100 局面)でも同様に (10^{16}) 程度の値が得られ、シャノンが全長ゲーム((10^{120}))の下限を算出した際にも類似の方法が使われています。OEIS 系列 A048987(15 局面までのゲーム数)の正確なカウントは、100,000 サンプルで約 0.5 % の誤差内にパスプロダクト法を確認しています。
著者らは、サンプルサイズをさらに増やすことで標準誤差が減少し、この手法を長いゲームや他の組合せ系統へ拡張できると示唆しています。これにより、AI、ゲーム理論、アルゴリズム設計の研究者は、膨大な探索空間を網羅的に列挙することなく、迅速かつ軽量で近似できる方法を得られるでしょう。

本文

2026年1月27日付


いくつのチェスゲームが可能でしょうか?

「どれだけ多様なチェスゲームが存在するのでしょうか?」という楽しい問いがあります。
チェスゲーム数を正確に数えることは、数字が膨大で盤面構成も複雑なため非常に困難です。本稿では、短いチェスゲームの可能性を推定してみます。


多くの選択肢を持つ長時間戦

ラベル(Labelle)は、長時間戦が取ることのできる数を
(10^{29241}) から (10^{34082}) の範囲に限定できました。
ここでは典型的で短いチェスゲームに注目します。


ウォームアップ:フェルミ問題法による典型的なゲーム数の推定

フェルミ問題法とは、知りたい量を他の少数の要素に分解し、それらを近似して算出する手法です。
計算が簡単でありつつ妥当性もあるような算術形式を選ぶことがコツです。

チェスの場合、以下の推定式を提案します。

[ \text{典型的ゲーム数} ;\approx; \text{1手あたりの典型的オプション数}\times \text{ゲームあたりの典型的手数} ]

この式は主観的で、単なる「良さそうだ」という感覚に基づくものです。
次に 典型的手数1手あたりの典型的オプション数 の実用値を求めます。

また、プレイヤーが通常考慮する可能な手数を知る必要があります。Lichess.org のパズルを調べてみると:

(例題は省略)

黒の合法手は46個あります。この 46 を
(10\log_{10}(46)\approx101.66) と表し、計算を簡易化すると、
フェルミ推定では典型的なチェスゲーム数は ((101.66)^{100}\approx10^{166}) 程度になるとされます。これは「計算の喜び」に描写したような優雅さを持っています。

クロード・シャノンも同様の議論で、可能なチェスゲームの下限が (10^{120}) であることを示しました(参考文献)。

これらの推定は主観的で、値が大きく異なり入力に敏感です。次節で詳しく検討します。


Knuth のパス・プロダクト推定

単一ゲームからの推定

簡便さを保つため、短いチェスゲーム(勝敗や引き分けまでに 100 手未満)だけを対象とします。
Python‑chess パッケージで実装されたルールに従い、合法手を均等確率で選び、途中で手数上限に達した場合はサンプルを破棄しつつ、終了条件に到達するまでゲームを生成します。

このようにして得た単一サンプルゲーム (g) について、フェルミ推定の代わりに Knuth のパス・プロダクト推定器を用います:

[ p(g)=\prod_{i}\text{位置}(g[i]) \text{ における合法手数} ]

ここで (g[i]) はゲーム中の i 番目の局面です。
もしサンプルゲームが「典型的」だった(正確に 典型的手数 手を使い、各局面で 1手あたりの典型的オプション数 の合法手しかなかった)ならば、フェルミ推定とこの計算は一致します。実際には違うため、新しい推定値が元のフェルミ法よりも過大または過小になることが期待されます。

Knuth は、このパス・プロダクト推定器が技術的に非常に良いことを証明しました:

[ \frac{1}{|G|}\sum_{g\in G}p(g)=|G| ]

ここで (G) はすべての短いチェスゲーム集合です。期待値記法で言えば
(\mathbb{E}_{g\in G}[p(g)]=|G|)。
したがって (|G|) を推定するには、(p(g)) の平均を求めればよいのです。

単一サンプルゲームに対しては、パス・プロダクト推定値は (10^{116.96179})。整数指数で丸めると (10^{117}) となります。


複数ゲームからの推定

期待値推定を改善する典型的な方法はサンプルを増やすことです。
10,000 個の独立したゲームを生成し、各ゲームの (\log_{10}) 推定値を分布させました(分布図は省略)。

このサンプルで得られた平均推定値は (10^{151})。残念ながら標準誤差も同程度であり、サンプルが信頼できるとは言えません。


大規模サンプル

変動問題を解決するため、1,000,000 個のゲームから抽出した独立した大きなサンプルを用いました。
大規模サンプル(サイズ 1,000,000)からの部分集合を調べることで、推定値がサンプルサイズに応じてどのように振る舞うかを確認します。

グラフ上の初期跳躍や傾向は、大きなサンプルで重要な稀な大きい例を発見できるようになるためです。追加の議論がない限り、まだ観測されていないより大きな推定値が存在する可能性があります。したがって、この推定には残存リスクがあります。

安定化し、係数変動(標準誤差 ÷ 推定値)が 1 未満になることを期待しています。

大規模サンプルでの平均推定値は再び (10^{151})。詳細桁数で確認すると:

  • 小さなサンプル推定:(10^{150.94})
  • 大きなサンプル推定:(10^{151.27})

パス・サンプリング手法の信頼性は?

Knuth のパス・サンプリング手法はかなり信頼できると考えられます。主なリスクは Knuth が指摘した「高い未観測分散」――つまり、まだ見たことがない大きな例が存在する可能性です。

もし「巨大ゲーム」が隠れていないことが確定している場合、この手法は極めて正確になります。例えば、下図は 1 手から 15 手までの局面数を達成したチェスゲームの推定誤差率を示しています。これら非常に短いゲームの正確値は OEIS A048987 から取得します。

右端の点では、10 万個のサンプルだけで
(2,015,099,950,053,364,471,960) 通りの可能なゲーム数を推定する際に約 0.5 % の誤差しか生じません。実際の人口よりはずっと小さいサンプルです。

初期段階ではゲーム数がほぼ指数関数的に増加し、正確に推定できるほど規則性があります。しかし次のグラフで示すように、Knuth のパス・サンプリング推定値は単純な指数トレンドよりも実際のカウントにずっと近いです。全データを使って最小限の指数トレンドフィットを行っても、その適合領域で ±30 % を超えて誤差が出ることが多いです。


結論

フェルミ問題法と Knuth のパス・プロダクト推定法の両方を用いて、短いチェスゲームの可能性数を推定しました。
最終的に、約 (10^{151}) 程度の短いチェスゲームが存在すると考えられます。

フェルミ問題法から Knuth パス・プロダクト法へ切り替えると:

  1. 主観的な算術形を推測する必要がなくなる。
  2. 探索対象システムの正確なルールをより簡潔に取り込める。
  3. 推定入力値への主観性を排除できる。
  4. より大きいサンプルで「信頼性」を「購入」する試みが可能になる。

もちろん、これらの手法はチェス以外にも広く応用できます。

カテゴリ:コンピュータ科学、数学
タグ:アルゴリズム、近似、チェス、組合せ論

ジョン・マウント

同じ日のほかのニュース

一覧に戻る →

2026/01/28 4:20

Chrome Canary でテキスト拡大・縮小のサポートをお試しください。

## 日本語訳: --- ## 要約 Chrome Canary は、ウェブページ上でオペレーティングシステムのテキストサイズ設定を尊重するようブラウザに指示する新しいメタタグ `<meta name="text‑scale">` の利用をユーザーが選択できるようになりました。 この機能はまだ実験的で、オプトインフラグによって制御されています。 2024 年夏に CSS Working Group に提案され、CSS Fonts 5 仕様に追加されたもので、サイトがシステムテキストスケーリングを尊重するよう設計されていることを示します。 モバイルユーザーの約三分の一(Android 約 37%、iOS 約 34%)が OS テキストサイズを調整していますが、ほとんどのブラウザはこれらの設定を無視しています。 Safari と Chrome はスキップし、Firefox for Android はページズームを使用します。 グローバルサポートを有効にするとデスクトップレイアウトが壊れる可能性があります(例:フォントサイズが倍になると LinkedIn のページが崩れます)。 したがって慎重な実装が必要です。 **開発者向けベストプラクティスチェックリスト:** 1. **初期 CSS `font-size` を上書きしないでください。** デフォルトを medium(約 16 px)に設定するか、パーセンテージ値を使用します。 2. **コンテンツ要素にはフォント相対単位(em, rem)のみを使用してください。** 必要がない限り、マージン・パディング・ギャップには使用しません。 3. **開発者ツールで 320 px ビューポートに 200 % テキストスケールをシミュレートし、`env(preferred-text-scale)` 関数を使ってテストしてください。** 未解決の質問があります:大きな見出しは本文より低い倍率で拡大すべきでしょうか(例:32 px → 64 px)? ブラウザは今年後半に `<meta name="text‑scale">` をサポートする可能性がありますが、他のエンジンについては確認されたタイムラインはありません。 追加議論とドキュメントは CSS Day 2026(6 月)で予定されています。 広く採用されれば、デザインを壊すことなくアクセシビリティ設定に対応できるようになります—ただしレイアウトの崩れを防ぐためにスペーシング単位を管理する必要があります。

2026/01/28 5:35

タイムステーション・エミュレータ

## Japanese Translation: > ## 要約 > タイムステーションエミュレーターは、スマートフォンやタブレットを低周波ラジオ送信機に変換し、ほとんどの原子時計や腕時計の同期に使用できる時間信号を放送します。NTP スタイルのアルゴリズムを用いて ±24 h のオフセットを許容し、自動的に夏時間変更と DUT1 うるう秒補正(適宜)を適用することで、BPC、DCF77、JJY、MSF、および WWVB の5つの公式局をエミュレートします。ツールは WebAssembly を介してブラウザ上で完全に動作し、インストールやデータ収集は不要です。また、44.1 kHz PCM 出力以上の DAC サポートがあれば十分です。 > > パフォーマンスは内蔵スピーカーで最も優れています。有線ヘッドホンでも動作しますが、Bluetooth やオーディオフィーバー機器では搬送波のサブハーモニック変調に必要な高周波共振子を歪めることがあります。2024 年初頭時点で iOS の Safari と Android の Firefox は不具合があり、機能しません。ユーザーは希望する局を選択し時計パラメータを設定した後、電話のスピーカーを時計のアンテナに近づけます。音声波形は、搬送波周波数のサブハーモニック変調によって実際のタイムステーション放送を模倣する RF ノイズを生成するよう設計されています。 > > エミュレーターは最大ボリュームで再生すると永久的な聴覚障害を引き起こす可能性があるため、スピーカーを直接聞くことを避けるよう警告します。ホストサイトは <https://timestation.pages.dev/> であり、そのソースコード(Unicode とアイコン資産を含む)は MIT ライセンスに準拠し、適切な帰属要件が課されています。

2026/01/28 3:57

レナート・ポッタリングとクリスチャン・ブラウナーは新しい会社を設立しました。

## Japanese Translation: まとめはすでにKey Pointsリストと完全に一致しているため、変更の必要はありません。