0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

モンテカルロ法とは!?中学生でも分かるように解説!

Last updated at Posted at 2025-08-16

こんにちは!
今日は「モンテカルロ法(Monte Carlo method)」という、AI・統計・物理・金融などで大活躍するテクニックを、中学生にもわかるようにやさしく説明します。

ひとことで言うと?

モンテカルロ法とは、「ランダムにたくさん試して、知りたい値を“だいたい”推測する方法」

たとえば、“計算がむずかしすぎて正確な式で出すのが大変”なときでも、サイコロや乱数を使って何度もシミュレーションすれば、答えの近くにどんどん近づくことができます。

名前の由来

「モンテカルロ」はモナコのカジノで有名な地名。
ランダム(確率) を使うアイデアが、賭け(ランダム性) を連想させることからこの名前が付きました。

モンテカルロ法の考え方

モンテカルロ法の基本はとてもシンプルです。

  1. ランダムに数を作る
  2. その数でシミュレーションをする
  3. たくさん繰り返して平均をとる

これだけで「だいたいの答え」がわかるのです。

繰り返す回数が増えるほど、答えは本物に近づきます。

サイコロでわかる直感

例えば、「サイコロを 2 回振って合計が 7 になる確率」は計算をすると1/6になります。
しかし、それが計算できなかったとしても、何万回もランダムに振って数えてみれば、だいたい 1/6 に近づくはず。
正確な式を知らなくても、ランダムに試行 → 割合をとるだけで近似できます。
まさに、このアプローチがモンテカルロ法なのです。

円周率を求める

また、モンテカルロ法は有名な「円周率 π を求める実験」にも使われます。

スクリーンショット 2025-08-16 13.01.52.png

  1. 1辺が1の正方形を用意する
  2. その中に円の4分の1を描く
  3. 正方形の中にランダムに点を打つ
  4. 円の中に入った点の割合を調べる

点を無限に打つと、その割合は π / 4 に近づいていきます。
つまり、モンテカルロ法を使って「円周率π」を推定できるのです!

ちなみにこのモンテカルロ法を使って円周率を求めるアプローチは、Pythonで以下のように簡単に実装することができます。

import random
N = 100_000
hit = 0
for _ in range(N):
    x = random.random()  # 0~1
    y = random.random()
    if x*x + y*y <= 1.0:
        hit += 1
pi_est = 4 * hit / N
print(pi_est)

どれくらい正確?

さて、それではモンテカルロ法はどれくらい正確なのでしょうか?

もちろん試行回数を増やせば増やすほど正確になりますが、具体的にはモンテカルロ法の誤差は、だいたい「1/√N」 のオーダーで減ります(N は試行回数)。

例えば、N=1,000 での誤差より、N=10,000 のほうが約 1/√10 ≈ 1/3.16 に誤差が小さくなります。

10倍 正確にしたかったら 100倍 試す必要があるんです。


どんなときに使うの?

  • 面積や確率を求めたい(でも式で計算するのが難しい)
  • 将来のリスクを知りたい(株価の変動、在庫切れの確率など)
  • 複雑な仕組みを試行で理解したい(待ち行列、交通、ゲームAI など)
  • 高次元の積分(次元が高いほど普通の計算が爆発的に難しくなる)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?