本ページはプロモーションが含まれています

ギャラリー

確率の錯覚ミュージアム|誕生日・3つの扉・ベイズなど、直感がずれる確率を8部屋で試す

CATEGORY
REV.
DRAWN BY
TOM
SHEETS
0枚
確率(確率の錯覚ミュージアム)

トム

SESで約8年、環境を変えられないもどかしさの中にいました。32歳で自社開発企業に転職し、今はClaude Codeと自動化で、仕事も時間も組み直している途中です。
・Javaバックエンドエンジニア(Java歴12年以上)
・資格:基本情報技術者/応用情報技術者/Java Silver/Python3エンジニア認定基礎
詳細なプロフィール

𝕏

CODE GALLERY No.26

確率の錯覚ミュージアム

直感と答えがずれる確率を、8つの展示室に集めました。予想してから答え合わせをし、条件を動かして確かめます。自分の「でたらめ」を判定する部屋や、確率を比べる天秤もあります。

「23人いれば、誕生日が同じ2人がいる確率は半分を超える」と聞くと、多くの人は「そんなはずはない」と感じます。確率は、計算すればはっきり答えが出るのに、直感がよく外れる分野です。

このミュージアムでは、まず自分の直感で「何%か」を予想します。そのあと、正確な計算と、実際に何千回も試したシミュレーションの両方で答え合わせをします。最後の出口で、予想した6部屋分の「直感のずれ」をまとめて測ります。

HOW TO USE回り方

  • 上の札で部屋を選びます。どの部屋も、問いを読んでスライダーで予想し、「答え合わせ」を押します
  • 答え合わせのあとには「実験台」が出ます。人数や扉の数、回数を変えると、答えがどう動くかを試せます
  • 3つの扉の部屋では、扉を選んで実際に遊べます。司会がハズレの扉を開けたあと、扉を変えるかどうかを決めます
  • 何回で当たるの部屋は、「当たる確率と回数」から1回以上当たる確率を出す計算機です。ガチャや懸賞の見積もりにも使えます
  • 人間乱数の部屋では、頭の中でコインを投げたつもりで「表」「裏」を50回押します。本物のでたらめ1万本と比べて、人間が作った並びかどうかを判定します
  • 天秤の部屋は、2つのできごとのどちらが起こりやすいかを当てる10問のゲームです
  • 回り終えたら「出口」で、あなたの直感ずれ度(予想と答えの差の平均)と、人間乱数・天秤の結果が出ます

HOW IT WORKS答えの出し方

1. 誕生日:全員の誕生日がばらばらになる確率を先に出し、1から引きます。2人目は364/365、3人目は363/365…と、ばらばらでいられる確率が少しずつ減っていきます。

let none = 1;
for (let k = 0; k < n; k++) none *= (365 - k) / 365;
return 1 - none;   // 23人で 0.507

2. 扉:最初に当たりを選んでいる確率は 1/扉の数 です。司会はハズレだけを開けるので、扉を変えて当たるのは「最初に外れを選んでいたとき」と同じになります。3枚なら 2/3、10枚なら 9/10 です。シミュレーションでは、司会の動きをそのまま書いて何千回も遊ばせています。

3. 迷惑メール:ベイズの定理を使います。「迷惑」と判定されたメールは、本物の迷惑メールを見抜いた分と、普通のメールを誤った分の合計です。そのうち本物の分の割合が答えです。

const tp = prior * sens;          // 本物を見抜いた
const fp = (1 - prior) * fpr;     // 普通のメールを誤った
return tp / (tp + fp);            // 0.01, 0.99, 0.03 で 0.25

4. 連続:「いまの連続が何回目か」ごとの確率を表にして、1回投げるたびに更新します(動的計画法)。同じ面が出れば連続が1つ伸び、違う面なら1に戻ります。指定の回数に届いたものは表から外し、最後に残った分を1から引きます。100回で5回以上なら 97.2% です。

for (let r = 1; r < k; r++) {
q[1] += p[r] / 2;                 // 違う面:連続は1に戻る
if (r + 1 < k) q[r + 1] += p[r] / 2; // 同じ面:1つ伸びる
}

5. ギャンブラー:10万回投げた並びの中から、裏が続いた直後の1回だけを拾って、表の割合を数えます。何回続いたあとでも、50%前後から動きません。

6. 何回で当たる:1回も当たらない確率 (1−p)n を1から引きます。95%に届く回数は、この式を n について解いた log(0.05) ÷ log(1−p) を切り上げて出しています。「100人で試す」では、一様な乱数から、当たるまでの回数を1人ずつ直接作っています。

const atLeastOnce = 1 - Math.pow(1 - p, n);           // 1%・100回で 0.634
const need = Math.ceil(Math.log(1 - 0.95) / Math.log(1 - p)); // 1%なら 299回

7. 人間乱数:並びから「表と裏が入れ替わった回数」と「いちばん長い連続」を数えます。本物のでたらめ50回では、入れ替わりは平均24.5回、最長の連続は平均6回ほどです。人が作ると、入れ替わりが多く連続が短くなりがちです。この2つを本物1万本の平均とばらつきで点数にし、あなたの並びより極端なものが本物の中に何%あるかを出します。それが小さいほど「人間っぽい」と判定します。本物のでたらめでも、5%ほどは「ほぼ確実に人間製」と出ることがあります。

8. 天秤:載せているできごとは、サイコロ・コイン・トランプ・じゃんけん・誕生日のように計算で確率が決まるものと、宝くじのように当せん本数が公表されているものだけです。ロト6は 43個から6個を選ぶ組み合わせの数(6,096,454通り)、年末ジャンボの1等は 1ユニット2,000万枚に1本として計算しています。確率が2.5倍以上離れた2つだけを組にしています。

NOTES注意

  • 誕生日の部屋は、閏年の2月29日を数えず、365日のどの日も同じ確率で生まれるものとして計算しています
  • シミュレーションは毎回でたらめに試すので、押すたびに値が少しずつ変わります。回数を増やすほど、計算の値に近づきます
  • 人間乱数の判定は、50回の並びだけを見た目安です。本物のでたらめでも、ときどき「人間っぽい」と出ます
  • 迷惑メールの数字は、問題のために決めた例です。実際のフィルタの性能を表すものではありません
  • くじの計算は、毎回の当たる確率が同じで、前の結果に左右されないものとして出しています。天井や確率の変わる仕組みがあるガチャには当てはまりません

※ 予想はこのブラウザの中だけで使い、保存も送信もしません。

NEXT READ本棚から1本

AIで開発を組み直すなら、まずこの5冊から

入門・実践・設計まで、Claude Codeの本をレベル別に5冊選んで比べました。

→ おすすめ5冊を見る

  • この記事を書いた人
  • 最新記事

トム

SESで約8年、環境を変えられないもどかしさの中にいました。32歳で自社開発企業に転職し、今はClaude Codeと自動化で、仕事も時間も組み直している途中です。
・Javaバックエンドエンジニア(Java歴12年以上)
・資格:基本情報技術者/応用情報技術者/Java Silver/Python3エンジニア認定基礎
詳細なプロフィール

𝕏

ギャラリー